Skip to content

feat(deno): migrate flat-mate workspace → deno.json (3/4 manifests, standards#253 longtail)#16

Merged
hyperpolymath merged 1 commit into
mainfrom
campaign-253/migrate-flat-mate-deno
May 31, 2026
Merged

feat(deno): migrate flat-mate workspace → deno.json (3/4 manifests, standards#253 longtail)#16
hyperpolymath merged 1 commit into
mainfrom
campaign-253/migrate-flat-mate-deno

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Workspace-style migration covering 3 of 4 npm manifests. The fourth (apps/mobile/package.json) is Class C — Expo / React Native / Metro bundler ecosystem cannot run under Deno, so the npm manifest remains as a host-required carve-out (parallel to the VSCode-extension class).

Migrated

Manifest Class New file Notes
/package.json workspace-root /deno.json Deno workspace with apps/web + packages/shared; tasks for dev:api (Deno-native), dev:web (delegates), check
apps/web/package.json B apps/web/deno.json Vite + React via npm: specifiers; nodeModulesDir: "auto"
packages/shared/package.json A packages/shared/deno.json Pure-JS barrel; just name + version + exports

Deferred (Class C — host-required)

  • apps/mobile/package.json — Expo SDK + React Native + Metro bundler require Node + npm/yarn/pnpm. Deno cannot run Expo CLI; Metro is fundamentally npm-rooted. Same Class C pattern as VSCode extensions (host requires npm). Tracked as Class C carve-out candidate for hypatia rule extension (per-repo follow-up).

The root dev:mobile task emits a documentation message pointing to the Expo CLI invocation instead of orchestrating, so deno task dev:mobile does not silently fail.

Test plan

  • deno task dev:api runs the Deno-native API server (unchanged)
  • deno task dev:web chains to apps/web dev task (vite)
  • deno task check validates apps/api (Deno) + packages/shared (deno check on .js)
  • apps/mobile continues to work via its Expo toolchain (unchanged)

Per per-repo follow-up tracker for standards#253 (campaign closed 2026-05-31, longtail tracked in project_estate_npm_to_deno_2026_05_28.md).

Refs hyperpolymath/standards#253.

🤖 Generated with Claude Code

…pps/mobile Class C deferred, standards#253 longtail)

Workspace-style migration covering 3 of 4 npm manifests. The fourth
(`apps/mobile/package.json`) is Class C — Expo / React Native /
Metro bundler ecosystem cannot run under Deno, so the npm manifest
remains as a host-required carve-out (parallel to the VSCode-extension
class).

## Migrated

- **`/deno.json`** (was root `package.json`) — Deno workspace with
  `apps/web` + `packages/shared` members, plus `tasks` for `dev:api`
  (Deno-native), `dev:web` (delegates to apps/web workspace), and
  `check` (deno check + lint + node --check → deno check). `dev:mobile`
  task emits a Class C documentation message instead of orchestrating.
- **`apps/web/deno.json`** (was `apps/web/package.json`) — Class B
  with `imports` for react/react-dom/vite/@vitejs/plugin-react via
  `npm:` specifiers; tasks via `deno run -A --node-modules-dir=auto
  npm:vite@^8.0.7 …`.
- **`packages/shared/deno.json`** (was `packages/shared/package.json`)
  — Class A; pure JS barrel-export package with no scripts, just
  `name` + `version` + `license` + `exports`.

## Deferred (Class C)

- **`apps/mobile/package.json`** — Expo SDK + React Native + Metro
  bundler require Node + npm/yarn/pnpm. Deno cannot run `expo start`,
  Metro is fundamentally npm-rooted. Same Class C pattern as VSCode
  extensions (host requires npm). Tracked as Class C carve-out
  candidate for hypatia rule extension (per-repo follow-up).

## Test plan

- [ ] `deno task dev:api` runs the Deno-native API server (unchanged)
- [ ] `deno task dev:web` chains to apps/web deno task dev (vite)
- [ ] `deno task check` validates apps/api + packages/shared
- [ ] apps/mobile still works with npm (unchanged)

Per per-repo follow-up tracker for standards#253 (campaign closed
2026-05-31, longtail tracked in project_estate_npm_to_deno_2026_05_28.md).

Refs hyperpolymath/standards#253.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 31, 2026 07:27
@hyperpolymath hyperpolymath merged commit e6a83c8 into main May 31, 2026
0 of 14 checks passed
@hyperpolymath hyperpolymath deleted the campaign-253/migrate-flat-mate-deno branch May 31, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant