GitHub

Worker Tools

Worker Tools are a collection of TypeScript libraries for writing web servers in Worker Runtimes such as Cloudflare Workers and Deno Deploy.

Tools

  • 🧭 Worker Router β€” Complete routing solution that works across CF Workers, Deno and Service Workers
  • πŸ”‹ Worker Middleware β€” A suite of standalone HTTP server-side middleware with TypeScript support
  • πŸ“„ Worker HTML β€” HTML templating and streaming response library
  • πŸ“¦ Storage Area β€” Key-value store abstraction across Cloudflare KV, Deno and browsers.
  • πŸ†— Response Creators β€” Factory functions for responses with pre-filled status and status text
  • 🎏 Stream Response β€” Use async generators to build streaming responses for SSE, etc...
  • πŸ₯ JSON Fetch β€” Drop-in replacements for Fetch API classes with first class support for JSON.
  • πŸ¦‘ JSON Stream β€” Streaming JSON parser/stingifier with 1st class support for WHATWG/web streams.
  • 🧱 Structured JSON β€” Stringify and parse JavaScript values according to Structured Clone Algorithm
  • πŸͺ Request Cookie Store β€” An implementation of the Cookie Store API for use in request handlers.
  • ⏱ Extendable Promise β€” A promise that can be delayed/extended via repeated calls to waitUntil.

Worker Tools also includes a number of polyfills that help bridge the gap between different Worker Runtimes:

  • ✏️ HTML Rewriter β€” Cloudflare's HTML Rewriter for use in Deno, browsers, etc...
  • πŸ“ Location Polyfill β€” A Location polyfill for Cloudflare Workers.
  • πŸ¦• Deno Fetch Event Adapter β€” Dispatches global fetch events using Deno’s native HTTP server.

Worker Tools also maintains a number of (web-) services:

  • βš™οΈ workers.js.org β€” Educational site about the state of Worker Runtimes.
  • πŸ¦• ghuc.cc β€” Import modules directly from GitHub into Deno with a familiar API.

*[SSE]: Server Sent Events


Worker Tools can be used independently or as a web framework via Shed.

How to Use

Deno users can import Worker Tools directly from GitHub as they are written in TypeScript with fully qualified import specifiers:

import * as shed from 'https://ghuc.cc/worker-tools/shed/index.ts'

For other runtimes such as module bundlers, webpack or esbuild, Worker Tools are distributed as node-ified modules that can be installed via npm and behave like regular npm modules

npm install @worker-tools/shed

Read the original on github.com β†—