Shelf
The Shelf package is a popular Dart package which acts as a middleware for incoming HTTP requests. There is a rich ecosystem of packages around Shelf, including routers and middleware.
Dart Edge provides a lightweight wrapper for interfacing with a Shelf Request and handling a returned Shelf Response, enalbing you take take advantage of this ecosystem of Shelf packages.
Vercel Edge
Install the shelf
and shelf_router
packages from pub.dev:
dart pub add shelf dart pub add shelf_router
Import the VercelEdgeShelf
class from the vercel_edge/vercel_edge_shelf.dart
package, and route the request to a Shelf Router
:
import 'package:vercel_edge/vercel_edge_shelf.dart'; import 'package:shelf_router/shelf_router.dart'; import 'package:shelf/shelf.dart'; void main() { VercelEdgeShelf( fetch: (request) async { final app = Router(); app.get('/', (request) async { return Response.ok('Welcome to Dart Edge!'); }); app.all('/<ignored|.*>', (request) { return Response.notFound('Resource not found'); }); return app(request); }, ); }
Alternatively, you could return a Pipeline
handler to apply middleware to your requests.