Skip to content

Development ​

This repo has two layers of tests:

  • Fast tests with Vitest (integration-style).
  • End-to-end runtime tests where the same test cases are reused across Node, Bun, Deno, browsers, and Cloudflare Workers (via Miniflare).

If you absolutely don't want to install deno and bun, all integration tests and end-to-end tests runs in actions as well.

Prerequisites:

  • Node 25 (see .nvmrc; with nvm: nvm install && nvm use), but should be supported down to node 18 according to the end-to-end tests.
  • Package manager is pnpm (see package.json#packageManager)

Setup ​

sh
pnpm install

Common scripts ​

Typecheck + lint + format:

sh
pnpm check

Fix formatting/lint issues:

sh
pnpm fix

Build the library (and types):

sh
pnpm build

Tests ​

Run everything (requires deno and bun):

sh
pnpm test

Vitest (fast):

sh
pnpm test:integrations

End-to-end runtime matrix (Node + Bun + Deno + browser + workers), (requires deno and bun):

sh
pnpm test:e2e

Notes:

  • Browser E2E uses Playwright.
  • Workers E2E uses Miniflare (e2e/run-workers.mjs + e2e/worker-test.ts).
  • Deno E2E runs with --allow-net --allow-read --allow-run=node (see e2e/run-deno.ts).

Docs ​

Local docs dev server:

sh
pnpm docs:dev

lil' guy says hi