@lovrozagar/honey 0.5.3 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/dist/codegen-route-tree-intern.d.ts +3 -2
- package/dist/codegen-route-tree-intern.d.ts.map +1 -1
- package/dist/codegen.d.ts.map +1 -1
- package/dist/openapi/spec.d.ts +1 -0
- package/dist/openapi/spec.d.ts.map +1 -1
- package/dist/proxy.d.ts +3 -3
- package/dist/proxy.d.ts.map +1 -1
- package/dist/tree.d.ts +4 -4
- package/dist/tree.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/codegen-route-tree-intern.ts +3 -2
- package/src/codegen.ts +1 -9
- package/src/index.ts +4 -4
- package/src/openapi/spec.ts +1 -0
- package/src/proxy.ts +6 -5
- package/src/tree.ts +4 -4
package/README.md
CHANGED
|
@@ -955,7 +955,7 @@ app.all("/upstream/*path").proxy({
|
|
|
955
955
|
rewriteUrl: (url) => url.replace(/^\/upstream/, ""),
|
|
956
956
|
requestHeaders: { "x-forwarded-by": "honey" },
|
|
957
957
|
// or requestHeaders: (ctx, headers) => { headers.set("x-user", ctx.user.id) }
|
|
958
|
-
timeout: 10_000, // or (ctx) => 5_000;
|
|
958
|
+
timeout: 10_000, // or (ctx) => 5_000; omit for no abort; disabled for WS upgrades
|
|
959
959
|
onResponse: (ctx, response) => {
|
|
960
960
|
response.headers.set("x-proxied", "1")
|
|
961
961
|
},
|
|
@@ -1094,12 +1094,12 @@ Adapters if you wire them yourself: `bunWebSocket` (`honey/ws/bun`), `nodeWebSoc
|
|
|
1094
1094
|
|
|
1095
1095
|
`honey()` stays fetch-only until you opt in:
|
|
1096
1096
|
|
|
1097
|
-
| Call or import | Loads
|
|
1098
|
-
| -------------------------------------------------------------------------- |
|
|
1099
|
-
| `app.serve()` or `import "@lovrozagar/honey/serve"` | Listen adapters
|
|
1100
|
-
| `app.openapi()` / `app.manifest()` or `import "@lovrozagar/honey/openapi"` | Spec + docs (codegen; live Zod)
|
|
1101
|
-
| `import { spec } from "@lovrozagar/honey/openapi/spec"` | Spec walker (intern JSON Schema
|
|
1102
|
-
| `app.errorI18n()` or `import "@lovrozagar/honey/i18n"` | Error i18n
|
|
1097
|
+
| Call or import | Loads |
|
|
1098
|
+
| -------------------------------------------------------------------------- | -------------------------------------------------- |
|
|
1099
|
+
| `app.serve()` or `import "@lovrozagar/honey/serve"` | Listen adapters |
|
|
1100
|
+
| `app.openapi()` / `app.manifest()` or `import "@lovrozagar/honey/openapi"` | Spec + docs (codegen; live Zod) |
|
|
1101
|
+
| `import { spec } from "@lovrozagar/honey/openapi/spec"` | Spec walker (live tree; intern has no JSON Schema) |
|
|
1102
|
+
| `app.errorI18n()` or `import "@lovrozagar/honey/i18n"` | Error i18n |
|
|
1103
1103
|
|
|
1104
1104
|
Production bundles that only call `app.fetch` do not pull listen, OpenAPI, or i18n code. The load uses an opaque `import(["@lovrozagar/honey", name].join("/"))` so bundlers do not follow unused feature entries.
|
|
1105
1105
|
|
|
@@ -1513,7 +1513,7 @@ import { requestToCurl } from "@lovrozagar/honey/request-to-curl"
|
|
|
1513
1513
|
await requestToCurl(req, { excludeHeader: (n) => n === "authorization" })
|
|
1514
1514
|
```
|
|
1515
1515
|
|
|
1516
|
-
`honey/openapi/spec` walks
|
|
1516
|
+
`honey/openapi/spec` walks a live tree without pulling `codegen.ts`. Intern trees omit JSON Schema — serve generate-time OpenAPI JSON as Worker assets. `honey/openapi/scalar` and `honey/openapi/swagger` are the docs UIs `app.openapi()` loads. `honey/cli` is the generate/init binary. `honey/codegen/extract` is the ts-morph extractor used by `--types`.
|
|
1517
1517
|
|
|
1518
1518
|
## Package exports
|
|
1519
1519
|
|
|
@@ -1525,7 +1525,7 @@ Import features from their path.
|
|
|
1525
1525
|
| `honey/serve` | Register Node/Bun/Deno listen |
|
|
1526
1526
|
| `honey/node` | Low-level Node `serve()` |
|
|
1527
1527
|
| `honey/openapi` | Register live spec generation (pulls codegen) |
|
|
1528
|
-
| `honey/openapi/spec` | Runtime spec walker —
|
|
1528
|
+
| `honey/openapi/spec` | Runtime spec walker — live tree, no codegen. Intern omits JSON Schema |
|
|
1529
1529
|
| `honey/openapi/scalar` `honey/openapi/swagger` | Docs UI |
|
|
1530
1530
|
| `honey/i18n` | Register error i18n |
|
|
1531
1531
|
| `@lovrozagar/honey/plugin` | Vite plugin + `generateFromApp` |
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Structural intern for generated route-tree modules.
|
|
3
3
|
*
|
|
4
4
|
* Handler objects stay unique (`.routeTree()` patches `fn`/`mw`/`iv`/`os` onto each
|
|
5
|
-
* `H*`).
|
|
6
|
-
*
|
|
5
|
+
* `H*`). Intern omits `iv`/`os` — serve generate-time OpenAPI JSON as Worker assets.
|
|
6
|
+
* Values handlers still point at — meta objects, selector strings, error-key arrays —
|
|
7
|
+
* are shared by identity when their JSON is identical.
|
|
7
8
|
*/
|
|
8
9
|
export type ForcedPrefix = "I" | "M" | "O" | "P";
|
|
9
10
|
export declare class InternPool {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen-route-tree-intern.d.ts","sourceRoot":"","sources":["../src/codegen-route-tree-intern.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codegen-route-tree-intern.d.ts","sourceRoot":"","sources":["../src/codegen-route-tree-intern.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AA4BhD,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAQ;IAEtB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAsBtB;IAED,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAU5C;IAED,IAAI,IAAI,IAAI,CAWX;IAED,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGjC;IAED,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKvB;IAED,cAAc,IAAI,MAAM,EAAE,CAczB;IAED,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,aAAa;CAerB"}
|
package/dist/codegen.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|
package/dist/openapi/spec.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ type SpecOptions<TMeta = Record<string, unknown> | null> = {
|
|
|
10
10
|
title: string;
|
|
11
11
|
version: string;
|
|
12
12
|
};
|
|
13
|
+
/** Walks the live or intern tree. Intern trees omit `iv`/`os`; serve generate-time OpenAPI JSON as assets instead of this walker on a gateway isolate. */
|
|
13
14
|
export declare function spec<TMeta = Record<string, unknown> | null>(options: SpecOptions<TMeta>): (ctx: {
|
|
14
15
|
res: {
|
|
15
16
|
json(sk: "ok", data: unknown): TypedResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/openapi/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAG9E,KAAK,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,OAAO,CAAA;IACxE,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAC1D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GACzB,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE;QAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;KAAE,CAAA;CAAE,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAgC5G"}
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/openapi/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAG9E,KAAK,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,OAAO,CAAA;IACxE,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CACf,CAAA;AAED,0JAA0J;AAC1J,wBAAgB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAC1D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GACzB,CAAC,GAAG,EAAE;IAAE,GAAG,EAAE;QAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;KAAE,CAAA;CAAE,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAgC5G"}
|
package/dist/proxy.d.ts
CHANGED
|
@@ -33,9 +33,9 @@ export type ProxyConfig<TCtx> = {
|
|
|
33
33
|
*/
|
|
34
34
|
rewriteUrl?: (url: string, ctx: TCtx) => string;
|
|
35
35
|
/**
|
|
36
|
-
* Timeout in milliseconds.
|
|
37
|
-
* Accepts a number or a function that receives ctx
|
|
38
|
-
* Disabled for WebSocket upgrades.
|
|
36
|
+
* Timeout in milliseconds. Omitted: no abort. `0` or a non-positive
|
|
37
|
+
* value: no abort. Accepts a number or a function that receives ctx
|
|
38
|
+
* and returns a number. Disabled for WebSocket upgrades.
|
|
39
39
|
*/
|
|
40
40
|
timeout?: number | ((ctx: TCtx) => number);
|
|
41
41
|
};
|
package/dist/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,IAAI,IAAI;IAC/B;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAExF;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAA;IAE1F;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;IAEjF;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;IAE/C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,IAAI,IAAI;IAC/B;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAExF;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAA;IAE1F;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAA;IAEjF;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;IAE/C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,CA8FpG"}
|
package/dist/tree.d.ts
CHANGED
|
@@ -15,14 +15,14 @@ export type RouteHandler = {
|
|
|
15
15
|
ek: Set<string>;
|
|
16
16
|
/** handler function */
|
|
17
17
|
fn: (ctx: unknown) => Response | Promise<Response>;
|
|
18
|
-
/** input validation schemas
|
|
19
|
-
iv
|
|
18
|
+
/** input validation schemas — intern trees omit; missing/`null` = no validation */
|
|
19
|
+
iv?: InputSchemasDef | null;
|
|
20
20
|
/** route metadata — frozen object, accessible via ctx.meta */
|
|
21
21
|
mt: Record<string, unknown> | null;
|
|
22
22
|
/** middleware chain — same as RuntimeMiddleware, inlined to avoid circular dep */
|
|
23
23
|
mw: Array<(ctx: Record<string, unknown>, next: (additions?: Record<string, unknown>) => Promise<Response>) => Promise<Response>>;
|
|
24
|
-
/** output schemas by content-type
|
|
25
|
-
os
|
|
24
|
+
/** output schemas by content-type — intern trees omit; missing/`null` = no validation */
|
|
25
|
+
os?: OutputSchemaDef | null;
|
|
26
26
|
/** output validator function — validates response body against schema */
|
|
27
27
|
ov?: OutputValidator | null;
|
|
28
28
|
/** registered path pattern (e.g. "/users/:id"); intern trees omit this */
|
package/dist/tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjF,MAAM,MAAM,YAAY,GAAG;IAC1B,qEAAqE;IACrE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzD,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4GAA4G;IAC5G,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IACzD,wEAAwE;IACxE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACf,uBAAuB;IACvB,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClD,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Structural intern for generated route-tree modules.
|
|
3
3
|
*
|
|
4
4
|
* Handler objects stay unique (`.routeTree()` patches `fn`/`mw`/`iv`/`os` onto each
|
|
5
|
-
* `H*`).
|
|
6
|
-
*
|
|
5
|
+
* `H*`). Intern omits `iv`/`os` — serve generate-time OpenAPI JSON as Worker assets.
|
|
6
|
+
* Values handlers still point at — meta objects, selector strings, error-key arrays —
|
|
7
|
+
* are shared by identity when their JSON is identical.
|
|
7
8
|
*/
|
|
8
9
|
|
|
9
10
|
export type ForcedPrefix = "I" | "M" | "O" | "P"
|
package/src/codegen.ts
CHANGED
|
@@ -1459,14 +1459,10 @@ function buildInternPool(routes: RouteConfig[]): InternPool {
|
|
|
1459
1459
|
for (const route of routes) {
|
|
1460
1460
|
intern.count(route.boundaryErrorKey)
|
|
1461
1461
|
intern.count(route.errorKeys)
|
|
1462
|
-
intern.count(route.inputSchemas)
|
|
1463
|
-
intern.count(route.outputSchemas)
|
|
1464
1462
|
intern.count(route.meta)
|
|
1465
1463
|
intern.count(selectorOf(route))
|
|
1466
1464
|
}
|
|
1467
1465
|
for (const route of routes) {
|
|
1468
|
-
intern.force(route.inputSchemas, "I")
|
|
1469
|
-
intern.force(route.outputSchemas, "O")
|
|
1470
1466
|
intern.force(route.meta, "M")
|
|
1471
1467
|
intern.force(selectorOf(route), "P")
|
|
1472
1468
|
}
|
|
@@ -1598,12 +1594,8 @@ function emitRouteTree(routes: RouteConfig[], collected: CollectedRoute[] | null
|
|
|
1598
1594
|
const route = routes[i]
|
|
1599
1595
|
const bekExpr = route.boundaryErrorKey !== null ? intern.expr(route.boundaryErrorKey) : "null"
|
|
1600
1596
|
const ekSet = route.errorKeys.length > 0 ? `new Set(${intern.expr(route.errorKeys)})` : "new Set()"
|
|
1601
|
-
const ivExpr = route.inputSchemas !== null ? intern.expr(route.inputSchemas) : "null"
|
|
1602
|
-
const osExpr = route.outputSchemas !== null ? intern.expr(route.outputSchemas) : "null"
|
|
1603
1597
|
const mtExpr = route.meta !== null ? intern.expr(route.meta) : "null"
|
|
1604
|
-
lines.push(
|
|
1605
|
-
`const H${i}: RouteHandler = { bek: ${bekExpr}, fn: FN, mw: [], ek: ${ekSet}, iv: ${ivExpr}, os: ${osExpr}, mt: ${mtExpr} }`,
|
|
1606
|
-
)
|
|
1598
|
+
lines.push(`const H${i}: RouteHandler = { bek: ${bekExpr}, fn: FN, mw: [], ek: ${ekSet}, mt: ${mtExpr} }`)
|
|
1607
1599
|
}
|
|
1608
1600
|
}
|
|
1609
1601
|
|
package/src/index.ts
CHANGED
|
@@ -1923,7 +1923,7 @@ export class Honey<
|
|
|
1923
1923
|
if (staticHandler.fn === null) {
|
|
1924
1924
|
fnNullMeta = staticHandler.mt
|
|
1925
1925
|
fnNullParams = EMPTY_PARAMS
|
|
1926
|
-
fnNullIv = staticHandler.iv
|
|
1926
|
+
fnNullIv = staticHandler.iv ?? null
|
|
1927
1927
|
fnNullHit = true
|
|
1928
1928
|
} else {
|
|
1929
1929
|
return this._handleMatched(fc, method, path, staticHandler, EMPTY_PARAMS)
|
|
@@ -1936,7 +1936,7 @@ export class Honey<
|
|
|
1936
1936
|
if (getHandler.fn === null) {
|
|
1937
1937
|
fnNullMeta = getHandler.mt
|
|
1938
1938
|
fnNullParams = EMPTY_PARAMS
|
|
1939
|
-
fnNullIv = getHandler.iv
|
|
1939
|
+
fnNullIv = getHandler.iv ?? null
|
|
1940
1940
|
fnNullHit = true
|
|
1941
1941
|
} else {
|
|
1942
1942
|
return this._handleMatched(fc, method, path, getHandler, EMPTY_PARAMS)
|
|
@@ -1968,7 +1968,7 @@ export class Honey<
|
|
|
1968
1968
|
if (result.handler.fn === null) {
|
|
1969
1969
|
fnNullMeta = result.handler.mt
|
|
1970
1970
|
fnNullParams = result.params
|
|
1971
|
-
fnNullIv = result.handler.iv
|
|
1971
|
+
fnNullIv = result.handler.iv ?? null
|
|
1972
1972
|
fnNullHit = true
|
|
1973
1973
|
} else {
|
|
1974
1974
|
return this._handleMatched(fc, method, path, result.handler, result.params)
|
|
@@ -2461,7 +2461,7 @@ export class Honey<
|
|
|
2461
2461
|
* because each route may match a different subset).
|
|
2462
2462
|
*/
|
|
2463
2463
|
const hasTelemetryMw = this._telemetry?.onMiddleware !== undefined
|
|
2464
|
-
const hasInputValidation = handler.iv
|
|
2464
|
+
const hasInputValidation = handler.iv != null
|
|
2465
2465
|
|
|
2466
2466
|
/*
|
|
2467
2467
|
* Error resolver — stored on ctx so the cached handler wrapper can read it.
|
package/src/openapi/spec.ts
CHANGED
|
@@ -13,6 +13,7 @@ type SpecOptions<TMeta = Record<string, unknown> | null> = {
|
|
|
13
13
|
version: string
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/** Walks the live or intern tree. Intern trees omit `iv`/`os`; serve generate-time OpenAPI JSON as assets instead of this walker on a gateway isolate. */
|
|
16
17
|
export function spec<TMeta = Record<string, unknown> | null>(
|
|
17
18
|
options: SpecOptions<TMeta>,
|
|
18
19
|
): (ctx: { res: { json(sk: "ok", data: unknown): TypedResponse } }) => TypedResponse | Promise<TypedResponse> {
|
package/src/proxy.ts
CHANGED
|
@@ -42,9 +42,9 @@ export type ProxyConfig<TCtx> = {
|
|
|
42
42
|
rewriteUrl?: (url: string, ctx: TCtx) => string
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
* Timeout in milliseconds.
|
|
46
|
-
* Accepts a number or a function that receives ctx
|
|
47
|
-
* Disabled for WebSocket upgrades.
|
|
45
|
+
* Timeout in milliseconds. Omitted: no abort. `0` or a non-positive
|
|
46
|
+
* value: no abort. Accepts a number or a function that receives ctx
|
|
47
|
+
* and returns a number. Disabled for WebSocket upgrades.
|
|
48
48
|
*/
|
|
49
49
|
timeout?: number | ((ctx: TCtx) => number)
|
|
50
50
|
}
|
|
@@ -58,7 +58,7 @@ export type ProxyConfig<TCtx> = {
|
|
|
58
58
|
* which has both fields — we access them via property access on the object.
|
|
59
59
|
*/
|
|
60
60
|
export function createProxyHandler<TCtx>(config: ProxyConfig<TCtx>): (ctx: TCtx) => Promise<Response> {
|
|
61
|
-
const timeoutOpt = config.timeout
|
|
61
|
+
const timeoutOpt = config.timeout
|
|
62
62
|
|
|
63
63
|
return async (ctx: TCtx) => {
|
|
64
64
|
const timeoutMs = typeof timeoutOpt === "function" ? timeoutOpt(ctx) : timeoutOpt
|
|
@@ -67,6 +67,7 @@ export function createProxyHandler<TCtx>(config: ProxyConfig<TCtx>): (ctx: TCtx)
|
|
|
67
67
|
const request = c["req"] as Request
|
|
68
68
|
const method = request.method
|
|
69
69
|
const isWs = request.headers.get("upgrade") === "websocket"
|
|
70
|
+
const abortMs = !isWs && timeoutMs != null && timeoutMs > 0 ? timeoutMs : undefined
|
|
70
71
|
|
|
71
72
|
/* URL resolution — path + query, no new URL() */
|
|
72
73
|
const rawUrl = request.url
|
|
@@ -108,7 +109,7 @@ export function createProxyHandler<TCtx>(config: ProxyConfig<TCtx>): (ctx: TCtx)
|
|
|
108
109
|
headers,
|
|
109
110
|
method,
|
|
110
111
|
redirect: "manual",
|
|
111
|
-
signal:
|
|
112
|
+
signal: abortMs == null ? undefined : AbortSignal.timeout(abortMs),
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
/* duplex required for streaming body (Node needs it, CF handles implicitly) */
|
package/src/tree.ts
CHANGED
|
@@ -18,8 +18,8 @@ export type RouteHandler = {
|
|
|
18
18
|
ek: Set<string>
|
|
19
19
|
/** handler function */
|
|
20
20
|
fn: (ctx: unknown) => Response | Promise<Response>
|
|
21
|
-
/** input validation schemas
|
|
22
|
-
iv
|
|
21
|
+
/** input validation schemas — intern trees omit; missing/`null` = no validation */
|
|
22
|
+
iv?: InputSchemasDef | null
|
|
23
23
|
/** route metadata — frozen object, accessible via ctx.meta */
|
|
24
24
|
mt: Record<string, unknown> | null
|
|
25
25
|
/** middleware chain — same as RuntimeMiddleware, inlined to avoid circular dep */
|
|
@@ -29,8 +29,8 @@ export type RouteHandler = {
|
|
|
29
29
|
next: (additions?: Record<string, unknown>) => Promise<Response>,
|
|
30
30
|
) => Promise<Response>
|
|
31
31
|
>
|
|
32
|
-
/** output schemas by content-type
|
|
33
|
-
os
|
|
32
|
+
/** output schemas by content-type — intern trees omit; missing/`null` = no validation */
|
|
33
|
+
os?: OutputSchemaDef | null
|
|
34
34
|
/** output validator function — validates response body against schema */
|
|
35
35
|
ov?: OutputValidator | null
|
|
36
36
|
/** registered path pattern (e.g. "/users/:id"); intern trees omit this */
|