Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@p-j/eapi-util-fetcheventhandler

p-j18MIT1.1.0TypeScript support: included

EAPI utility function that make the whole middleware stack work.

eapi, workers, cloudflare, cloudflare-workers, middleware, utility

readme

@p-j/eapi-util-fetcheventhandler

This package provide a Fetch Event Handler factory that can be used in a multi-router setup.

It's especially useful if you combine originless routes with traditional routes on the same project

It also facilitate the application of "global" middlwares to all your routes.

Installation

  • From the NPM registry
npm install @p-j/eapi-util-fetcheventhandler
# or
yarn add @p-j/eapi-util-fetcheventhandler

Usage

import { fetchEventHandler } from '@p-j/eapi-util-fetcheventhandler'
import { withErrorHandler } from '@p-j/eapi-middleware-errorhandler'

const requestHandler: RequestHandler = (context) => new Response('Hello World')
const matcher: RouteMatcher = (event) => { handler: requestHandler, param: {} }

const eventHandler = fetchEventHandler({
  matcher,
  originless: true,
  middlewares: [withErrorHandler()]
})

addEventListener('fetch', (event) => event.respondWith(fetchEventHandler(event)))

Example with tiny-request-router

import { fetchEventHandler } from '@p-j/eapi-util-fetcheventhandler'
import { withErrorHandler } from '@p-j/eapi-middleware-errorhandler'

const requestHandler: RequestHandler = (context: RequestContext) => new Response('Hello World')

export const router = new Router()
router.all('/', requestHandler)

const matcher: RouteMatcher = (event: FetchEvent) => {
  const { pathname } = new URL(event.request.url)
  return router.match(event.request.method as Method, pathname)
}

export const fetchEventHandler = eventHandlerFactory({
  matcher,
  originless: true,
  middlewares: [withErrorHandler()],
})

addEventListener('fetch', (event) => event.respondWith(fetchEventHandler(event)))

changelog

@p-j/eapi-util-fetcheventhandler

1.1.0

Minor Changes

  • #43 db71477 Thanks @renovate! - chore(deps): update dependency @cloudflare/workers-types to v2.2.1

Patch Changes

1.0.2

Patch Changes

  • a24770f #22 Thanks @p-j! - Upgrade internal (eapi-*) dependendencies to non-alpha ones

1.0.1

Patch Changes

1.0.0

Major Changes

  • bb73d4f #4 Thanks @p-j! - Initial release of the FetchEventHandler factory utility