Skip to content
/ worker-eapi-template Public template

A Cloudflare Worker template to build API at the Edge, using a middleware model similar to express' while putting up with the particularities of the Worker environment.

License

Notifications You must be signed in to change notification settings

p-j/worker-eapi-template

Repository files navigation

workers-eapi-template

FOSSA Status

EAPI for Edge API, or Extremelly Awesome Programation Interface, you decide

A template for kick starting a TypeScript Cloudflare worker project with all the bells and whistles.

  • Inspired by worker-typescript-template & Express
  • Includes:
    • A Middleware setup to help with code reuse accross enpoints
    • A number of type definitions to help you code with confidence
    • A number of compatible middlwares & utility that can be found at p-j/eapi
    • A test setup with Jest & all the polyfills & mock you need
    • tiny-request-router for routing your requests, you can replace it with any other router you like though, it's only baked in for convenience

🔋 Getting Started

This template is meant to be used with Wrangler. If you are not already familiar with the tool, I recommend that you install the tool and configure it to work with your Cloudflare account. Documentation can be found here.

To use this template, click here to create a github repository from it.

Alternatively you can use Wrangler to generate a new project:

# This currently doesn't work, waiting on https://github.com/cloudflare/wrangler/pull/1653 or an alternative fix
wrangler generate my-ts-project p-j/worker-eapi-template --branch=main
cd my-ts-project
yarn

👩 💻 Developing

src/index.js setup the fetchEventHandler with the appropriate router instance and default middlewares

src/router.js define the routes, the middlewares and handlers for your application

src/middlwares contains contains a demo middleware, you can find other 'ready to use' middlewares at p-j/eapi

src/handlers contains a demo handler

__tests__/handlers.ts contains a functional test for the demo

🧪 Testing

This template comes with jest tests which simply test that the request handler will perform as expected.

✏️ Formatting

This template uses prettier to format the project. To invoke, run yarn format.

👀 Previewing and Publishing

For information on how to preview and publish your worker, please see the Wrangler docs.

🤢 Issues

If you run into issues with this specific project, please feel free to file an issue here. If the problem is with Wrangler, please file an issue here.

⚠️ Caveats

The service-worker-mock used by the tests is not a perfect representation of the Cloudflare Workers runtime. It is a general approximation. We recommend that you test end to end with wrangler dev in addition to a staging environment to test things before deploying.

Also, the KV_MOCK is currently fairly naive and could use a more thorough implementation.

License

FOSSA Status

About

A Cloudflare Worker template to build API at the Edge, using a middleware model similar to express' while putting up with the particularities of the Worker environment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published