Files
airship/apps/web/wrangler.jsonc
T
Nayan 6611c6b21c feat(web): the tanstack start app shell
apps/web is both airship's home page and the app `make run` points the CLI at —
which makes the site the thing that gets edited during development, and therefore
the first place a regression in the editor shows up.

routeTree.gen.ts is generated and committed on purpose so a clean checkout
typechecks without a build first; preflight regenerates and diffs it, because
committed generated files drift.
2026-08-08 13:54:00 +05:30

35 lines
1.3 KiB
JSON

{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "airship-web",
// TanStack Start's build already emits a module worker: dist/server/server.js
// exports `default = { fetch(request) }`. No adapter, no preset — the same
// artifact `make web:build` produces locally is what runs here.
"main": "./dist/server/server.js",
"compatibility_date": "2025-01-01",
// Required, not optional: the server entry imports node:async_hooks and
// node:stream. Without this flag the worker fails to boot at deploy time.
"compatibility_flags": ["nodejs_compat"],
// Static assets are served before the worker runs, so hashed client bundles
// never pay for an SSR invocation; anything unmatched falls through to the
// fetch handler above.
"assets": {
"directory": "./dist/client"
},
"observability": {
"enabled": true
},
// Both lanes name their target explicitly. Production could ride the
// top-level config instead, but once any env exists wrangler warns on an
// unqualified deploy — and `--env=""` is an awkward thing to thread through a
// GitHub Action's command string. Two named envs keeps both calls symmetric.
// main, compatibility_*, and assets are inherited from above.
"env": {
"production": {
"name": "airship-web"
},
"preview": {
"name": "airship-web-preview"
}
}
}