Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/drop-deno-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"enumwaii": patch
---

Drop Deno from the documented runtime support. The ESM entry is no longer tested under Deno, so the README lists only Node.js, Bun, and Cloudflare Workers.
5 changes: 1 addition & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,12 @@ jobs:
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.4.2
- uses: denoland/setup-deno@22d081ff2d3a40755e97629de92e3bcbfa7cf2ed # v2.0.5
with:
deno-version: v2.9.6
- name: Validate dependency pins
run: node scripts/check-dependency-pins.mjs
- run: pnpm install --frozen-lockfile
- name: Check packages, examples, and documentation
run: pnpm check
- name: Check Bun, Deno, and Cloudflare Workers
- name: Check Bun and Cloudflare Workers
run: pnpm test:runtimes
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ examples/**/.data
examples/**/pnpm-lock.yaml
examples/**/package-lock.json
examples/**/bun.lock*
examples/**/deno.lock
examples/react-native/android
examples/react-native/ios
examples/hono/worker-configuration.d.ts
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ pnpm test:runtimes

Examples are versioned in this repository but intentionally live outside the root pnpm workspace so their transitive dependencies do not enter the committed root lockfile. `pnpm check` builds the local `enumwaii` package, installs each example independently without a frozen lockfile, and runs its tests, type checks, and build. Generated example lockfiles are ignored. To work on one example from the repository root, run `pnpm --filter enumwaii build`, then `pnpm --dir examples/<name> install --no-frozen-lockfile` and `pnpm --dir examples/<name> <script>`.

`pnpm test:runtimes` is the opt-in cross-runtime gate and additionally requires Bun 1.4 and Deno 2.9. Cloudflare's local `workerd` binary is installed with the Hono example dependencies. CI installs the pinned Bun and Deno versions for this suite, so they are not prerequisites for ordinary Node-focused work.
`pnpm test:runtimes` is the opt-in cross-runtime gate and additionally requires Bun 1.4. Cloudflare's local `workerd` binary is installed with the Hono example dependencies. CI installs the pinned Bun version for this suite, so it is not a prerequisite for ordinary Node-focused work.

## Repository map

Expand Down Expand Up @@ -92,7 +92,7 @@ A pull request should:
4. include a Changeset when a published package changes; and
5. pass `pnpm check`.

Core validation and Extended validation start in parallel on every pull request. Core validation is the fast signal for the publishable packages; Extended validation checks the same commit across all examples, documentation, Node 18, Bun, Deno, and Cloudflare Workers. A new push cancels the older runs. Workflow runs for first-time contributors from forks wait for a maintainer to approve them.
Core validation and Extended validation start in parallel on every pull request. Core validation is the fast signal for the publishable packages; Extended validation checks the same commit across all examples, documentation, Node 18, Bun, and Cloudflare Workers. A new push cancels the older runs. Workflow runs for first-time contributors from forks wait for a maintainer to approve them.

Maintainers may ask to split a pull request when independent changes make its behavior or release impact difficult to review.

Expand Down
2 changes: 1 addition & 1 deletion MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This runbook covers the repository controls that cannot be inferred from package
Every pull request runs two parallel jobs from the **CI** workflow:

- **Core validation** installs only the root and publishable-package dependency graph, then checks formatting, dependency version policy, lint, runtime and type tests, package skills, builds, JSDoc coverage, package contents, and type resolution. It is the fast signal.
- **Extended validation** installs the full workspace and checks packages, examples, documentation, Node 18, Bun, Deno, and Cloudflare Workers.
- **Extended validation** installs the full workspace and checks packages, examples, documentation, Node 18, Bun, and Cloudflare Workers.

Both jobs run on `pull_request` with a read-only repository token, no secrets, and no persisted credentials, including for pull requests from forks. In **Settings → Actions → General**, require approval for fork pull request workflows from outside collaborators so fork code runs only after a maintainer approves it.

Expand Down
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,7 @@ OR
bun add enumwaii
```

OR

```sh
deno add npm:enumwaii
```

The package ships ESM and CommonJS entry points with declarations and source maps. Node.js 18 or newer is supported; the ESM build is also tested under Bun, Deno, and Cloudflare Workers without Node compatibility flags.
The package ships ESM and CommonJS entry points with declarations and source maps. Node.js 18 or newer is supported; the ESM build is also tested under Bun and Cloudflare Workers without Node compatibility flags.

## What it gives you

Expand Down Expand Up @@ -155,7 +149,7 @@ The `flat/recommended-type-checked` preset additionally catches direct member vi
| --- | --- |
| Web applications | [Next.js](examples/nextjs), [TanStack Start + Solid](examples/tanstack-start-solid), and [Vue](examples/vue) |
| Servers | [Hono](examples/hono), [Elysia](examples/elysia), [oRPC](examples/orpc), [Effect](examples/effect), and [NestJS](examples/nestjs) |
| Runtimes | Node.js, Bun, Deno, and Cloudflare Workers through the shared [Hono](examples/hono) boundary contract |
| Runtimes | Node.js, Bun, and Cloudflare Workers through the shared [Hono](examples/hono) boundary contract |
| Data and everyday UI | Drizzle + PGlite, Mongoose, TanStack Form, native forms, TanStack Table, URL state, persistence hydration, request validation, and visible failure paths across the examples above |

Every example is independently runnable and exercises invalid or ambiguous input instead of demonstrating only a happy path. Open the [example catalog](https://catofjupit3r.github.io/enumwaii/docs/examples/) for commands and hosted StackBlitz links.
Expand Down
5 changes: 0 additions & 5 deletions deno.json

This file was deleted.

12 changes: 0 additions & 12 deletions docs/adapters.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,6 @@ yarn add zod
bun add zod
```

```sh tab="deno"
deno add npm:zod
```

```ts
declare const payload: unknown;
// ---cut---
Expand Down Expand Up @@ -124,10 +120,6 @@ yarn add valibot
bun add valibot
```

```sh tab="deno"
deno add npm:valibot
```

```ts
declare const payload: unknown;
// ---cut---
Expand Down Expand Up @@ -171,10 +163,6 @@ yarn add nuqs
bun add nuqs
```

```sh tab="deno"
deno add npm:nuqs
```

For a shared default, create the parser beside the declaration and export both:

```ts
Expand Down
2 changes: 1 addition & 1 deletion docs/agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Before editing:

Implementation requirements:
- Install enumwaii using the repository's existing package manager. It supports
npm, pnpm, Yarn, Bun, Deno, and Cloudflare Workers projects.
npm, pnpm, Yarn, Bun, and Cloudflare Workers projects.
- Declare the complete value set with em([...]), extract the branded `.enum`
object once, and derive the application type from `typeof declaration["~type"]`.
- Replace authored raw literals with members from the extracted object.
Expand Down
9 changes: 2 additions & 7 deletions docs/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,6 @@ const ecosystem: readonly EcosystemGroup[] = [
href: `${exampleRoot}/hono`,
icons: ["bun"],
},
{
label: "Deno",
href: `${exampleRoot}/hono`,
icons: ["deno"],
},
{
label: "Cloudflare Workers®",
href: `${exampleRoot}/hono`,
Expand Down Expand Up @@ -307,8 +302,8 @@ export default function HomePage() {
<div>
<h2>Add enumwaii with the tools you already use.</h2>
<p>
The same package runs across Node.js, Bun, Deno, browsers, and
Cloudflare Workers.
The same package runs across Node.js, Bun, browsers, and Cloudflare
Workers.
</p>
</div>
<InstallCommand />
Expand Down
1 change: 0 additions & 1 deletion docs/brand-assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ A public logo file by itself is not treated as permission. When an owner says or
| --- | --- | --- |
| Node.js | Official hex mark, with its own link to nodejs.org | The OpenJS trademark policy permits an official project logo when it links to that project's home page. The mark is from the [Node.js branding page](https://nodejs.org/en/about/branding), and the separate link preserves the [OpenJS policy](https://trademark-policy.openjsf.org/). |
| Bun | Official color logo | Bun's [press kit](https://bun.com/press-kit) publishes its color `logo.svg` alongside a separate small-size icon and asks users not to stretch, recolor, or decorate either asset. The local asset is an unmodified copy of the color logo, whose cream, pink, ink, and blush palette remains legible in this light gallery. |
| Deno | Official mark | Deno publishes downloadable artwork and handling rules on its [brand page](https://deno.com/brand). The mark is unmodified. |
| Cloudflare Workers | **Text only** | Cloudflare permits truthful word-mark references but says ordinary logo use requires written permission. The first textual occurrence and attribution follow the [Cloudflare trademark guidelines](https://www.cloudflare.com/trademark/). |
| Next.js | Official symbol | Vercel permits truthful references to its technologies and identifies the symbol as appropriate for constrained or multi-brand icon sets. Each page displaying the symbol includes Vercel's required attribution. See the [Vercel and Next.js brand guidance](https://vercel.com/geist/brands). |
| TanStack Start | Official TanStack mark | TanStack publishes the mark and its spacing, proportion, and contrast rules in the [TanStack brand guide](https://tanstack.com/brand-guide). |
Expand Down
3 changes: 1 addition & 2 deletions docs/components/landing-playground.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
import { useEffect, useState, type ReactNode } from "react";

type Scenario = "calls" | "policy" | "crossed";
type PackageManager = "npm" | "pnpm" | "yarn" | "bun" | "deno";
type PackageManager = "npm" | "pnpm" | "yarn" | "bun";

const installCommands: Readonly<Record<PackageManager, string>> = {
npm: "npm install enumwaii",
pnpm: "pnpm add enumwaii",
yarn: "yarn add enumwaii",
bun: "bun add enumwaii",
deno: "deno add npm:enumwaii",
};
const packageManagerStorageKey = "enumwaii-package-manager";

Expand Down
Loading