Cloudflare Workers.dart

Usage

// example/assets.dart
import 'dart:js_interop';
import 'package:poor_web/js.dart';
import 'package:cf_workers/cf_workers.dart';

main() => fetch(_handler, property: '__fetcher');

extension on Env {
  @JS('ASSETS')
  external Fetcher get assets;
}

Future<Response> _handler(Request request, Env env, Context ctx) async {
  final uri = Uri.parse(request.url);

  if (uri.path.startsWith('/greet/')) {
    final name = uri.path.substring(7);
    return Response(String('Hello, $name!'));
  }

    return env.assets.fetch(request, env, ctx).toDart;
}
// example/assets.js
import { instantiate, invoke } from "./assets.mjs";
import dartModule from "./assets.wasm";

const dartInstance = await instantiate(dartModule);
invoke(dartInstance);

export default __fetcher;

Libraries

cf_workers