@setu-ts/kernel 0.0.0-stage → 0.9.0
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/LICENSE +21 -0
- package/README.md +144 -2
- package/dist/application/application.d.ts +172 -0
- package/dist/application/application.d.ts.map +1 -0
- package/dist/application/application.js +1862 -0
- package/dist/application/application.js.map +1 -0
- package/dist/application/inject-body.d.ts +58 -0
- package/dist/application/inject-body.d.ts.map +1 -0
- package/dist/application/inject-body.js +82 -0
- package/dist/application/inject-body.js.map +1 -0
- package/dist/context/request-context.d.ts +32 -0
- package/dist/context/request-context.d.ts.map +1 -0
- package/dist/context/request-context.js +136 -0
- package/dist/context/request-context.js.map +1 -0
- package/dist/context/response.d.ts +60 -0
- package/dist/context/response.d.ts.map +1 -0
- package/dist/context/response.js +193 -0
- package/dist/context/response.js.map +1 -0
- package/dist/diagnostics/buffer.d.ts +143 -0
- package/dist/diagnostics/buffer.d.ts.map +1 -0
- package/dist/diagnostics/buffer.js +185 -0
- package/dist/diagnostics/buffer.js.map +1 -0
- package/dist/diagnostics/collector.d.ts +284 -0
- package/dist/diagnostics/collector.d.ts.map +1 -0
- package/dist/diagnostics/collector.js +812 -0
- package/dist/diagnostics/collector.js.map +1 -0
- package/dist/diagnostics/projection.d.ts +153 -0
- package/dist/diagnostics/projection.d.ts.map +1 -0
- package/dist/diagnostics/projection.js +226 -0
- package/dist/diagnostics/projection.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/lifecycle-manager.d.ts +136 -0
- package/dist/lifecycle/lifecycle-manager.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-manager.js +206 -0
- package/dist/lifecycle/lifecycle-manager.js.map +1 -0
- package/dist/pipeline/execute-chain.d.ts +71 -0
- package/dist/pipeline/execute-chain.d.ts.map +1 -0
- package/dist/pipeline/execute-chain.js +104 -0
- package/dist/pipeline/execute-chain.js.map +1 -0
- package/dist/pipeline/middleware-pipeline.d.ts +68 -0
- package/dist/pipeline/middleware-pipeline.d.ts.map +1 -0
- package/dist/pipeline/middleware-pipeline.js +82 -0
- package/dist/pipeline/middleware-pipeline.js.map +1 -0
- package/dist/registry/plugin-resolver.d.ts +42 -0
- package/dist/registry/plugin-resolver.d.ts.map +1 -0
- package/dist/registry/plugin-resolver.js +140 -0
- package/dist/registry/plugin-resolver.js.map +1 -0
- package/dist/registry/service-registry.d.ts +110 -0
- package/dist/registry/service-registry.d.ts.map +1 -0
- package/dist/registry/service-registry.js +197 -0
- package/dist/registry/service-registry.js.map +1 -0
- package/dist/router/route-matcher.d.ts +85 -0
- package/dist/router/route-matcher.d.ts.map +1 -0
- package/dist/router/route-matcher.js +102 -0
- package/dist/router/route-matcher.js.map +1 -0
- package/dist/router/router.d.ts +130 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +350 -0
- package/dist/router/router.js.map +1 -0
- package/package.json +48 -3
- package/src/application/application.ts +2299 -0
- package/src/application/inject-body.ts +131 -0
- package/src/context/request-context.ts +169 -0
- package/src/context/response.ts +254 -0
- package/src/diagnostics/buffer.ts +241 -0
- package/src/diagnostics/collector.ts +1031 -0
- package/src/diagnostics/projection.ts +322 -0
- package/src/index.ts +20 -0
- package/src/lifecycle/lifecycle-manager.ts +287 -0
- package/src/pipeline/execute-chain.ts +164 -0
- package/src/pipeline/middleware-pipeline.ts +131 -0
- package/src/registry/plugin-resolver.ts +185 -0
- package/src/registry/service-registry.ts +267 -0
- package/src/router/route-matcher.ts +131 -0
- package/src/router/router.ts +485 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/application/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-shape coercion of an {@linkcode InjectRequest} body (M95c §3.9).
|
|
3
|
+
*
|
|
4
|
+
* `inject()` used to JSON-stringify every non-string body, so a
|
|
5
|
+
* `Uint8Array` arrived as `{"0":97,…}` and an `ArrayBuffer`, a `Blob` and a
|
|
6
|
+
* `URLSearchParams` each arrived as the two bytes `{}` — destroying the input
|
|
7
|
+
* while reporting status 200. The coercion is now explicit per shape, and any
|
|
8
|
+
* shape OUTSIDE the union is refused by name rather than silently stringified,
|
|
9
|
+
* because `InjectRequest.body` is reachable from JavaScript and from an
|
|
10
|
+
* `unknown`-typed caller, where the type alone would not hold.
|
|
11
|
+
*
|
|
12
|
+
* Internal to the kernel — deliberately NOT exported from the barrel. The
|
|
13
|
+
* union itself has ONE home, the published `InjectRequest.body`; this module
|
|
14
|
+
* derives its alias from it so the two cannot drift.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import type { InjectRequest } from './application.ts';
|
|
19
|
+
/**
|
|
20
|
+
* The body shapes {@linkcode InjectRequest} carries — derived from the
|
|
21
|
+
* published interface, which owns the literal union.
|
|
22
|
+
*
|
|
23
|
+
* @since 0.7.0
|
|
24
|
+
*/
|
|
25
|
+
export type InjectBody = NonNullable<InjectRequest['body']>;
|
|
26
|
+
/** What {@linkcode coerceInjectBody} resolves with. */
|
|
27
|
+
export interface CoercedInjectBody {
|
|
28
|
+
/** The body's bytes; `undefined` when the caller sent no body. */
|
|
29
|
+
readonly bytes: Uint8Array | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The content type to default to when the caller supplied none:
|
|
32
|
+
* `application/x-www-form-urlencoded` for a `URLSearchParams`,
|
|
33
|
+
* `application/json` for a string or a plain object, a `Blob`'s own `type`
|
|
34
|
+
* when that string is non-empty (matching the platform, whose
|
|
35
|
+
* `new Request(url, { body: blob })` sets the header from it and omits it
|
|
36
|
+
* when the blob has none), and NONE for a `Uint8Array` or an `ArrayBuffer`
|
|
37
|
+
* — those bytes carry no declared type, and guessing would make the form
|
|
38
|
+
* parse refuse them.
|
|
39
|
+
*/
|
|
40
|
+
readonly defaultContentType: string | undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Coerces an injected body to the bytes the synthetic request carries.
|
|
44
|
+
*
|
|
45
|
+
* Bytes pass through with their exact contents — copied, never aliased to the
|
|
46
|
+
* caller's `Uint8Array` or `ArrayBuffer`, since `bytes()` hands the result
|
|
47
|
+
* straight to the handler — a `Blob` is awaited to bytes, a `URLSearchParams`
|
|
48
|
+
* is serialised with its own `toString()`, and only a plain object reaches
|
|
49
|
+
* `JSON.stringify`. An array, a `Date`, a class instance or any other shape
|
|
50
|
+
* rejects with a `TypeError` naming the received type.
|
|
51
|
+
*
|
|
52
|
+
* @param body - The caller-supplied body, if any
|
|
53
|
+
* @returns The coerced bytes and the content-type default for the shape
|
|
54
|
+
* @throws {TypeError} When the body is outside the {@linkcode InjectBody} union
|
|
55
|
+
* @since 0.7.0
|
|
56
|
+
*/
|
|
57
|
+
export declare function coerceInjectBody(body: InjectBody | undefined): Promise<CoercedInjectBody>;
|
|
58
|
+
//# sourceMappingURL=inject-body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-body.d.ts","sourceRoot":"","sources":["../../src/application/inject-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5D,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IACvC;;;;;;;;;OASG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA+C5B"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coerces an injected body to the bytes the synthetic request carries.
|
|
3
|
+
*
|
|
4
|
+
* Bytes pass through with their exact contents — copied, never aliased to the
|
|
5
|
+
* caller's `Uint8Array` or `ArrayBuffer`, since `bytes()` hands the result
|
|
6
|
+
* straight to the handler — a `Blob` is awaited to bytes, a `URLSearchParams`
|
|
7
|
+
* is serialised with its own `toString()`, and only a plain object reaches
|
|
8
|
+
* `JSON.stringify`. An array, a `Date`, a class instance or any other shape
|
|
9
|
+
* rejects with a `TypeError` naming the received type.
|
|
10
|
+
*
|
|
11
|
+
* @param body - The caller-supplied body, if any
|
|
12
|
+
* @returns The coerced bytes and the content-type default for the shape
|
|
13
|
+
* @throws {TypeError} When the body is outside the {@linkcode InjectBody} union
|
|
14
|
+
* @since 0.7.0
|
|
15
|
+
*/
|
|
16
|
+
export async function coerceInjectBody(body) {
|
|
17
|
+
if (body === undefined) {
|
|
18
|
+
return { bytes: undefined, defaultContentType: undefined };
|
|
19
|
+
}
|
|
20
|
+
if (typeof body === 'string') {
|
|
21
|
+
return { bytes: new TextEncoder().encode(body), defaultContentType: 'application/json' };
|
|
22
|
+
}
|
|
23
|
+
if (body instanceof URLSearchParams) {
|
|
24
|
+
return {
|
|
25
|
+
bytes: new TextEncoder().encode(body.toString()),
|
|
26
|
+
defaultContentType: 'application/x-www-form-urlencoded',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
if (body instanceof Uint8Array) {
|
|
30
|
+
// A COPY, not the caller's array. `bytes()` hands this straight to the
|
|
31
|
+
// handler, so aliasing would let a handler that mutates the body it read
|
|
32
|
+
// corrupt the fixture the test passed in — and a fixture reused across two
|
|
33
|
+
// injected requests would carry the first request's mutation into the
|
|
34
|
+
// second. `slice()` also guarantees a plain ArrayBuffer-backed view, which
|
|
35
|
+
// `BodyInit` requires and a SharedArrayBuffer-backed argument would not be.
|
|
36
|
+
return { bytes: body.slice(), defaultContentType: undefined };
|
|
37
|
+
}
|
|
38
|
+
if (body instanceof ArrayBuffer) {
|
|
39
|
+
// `new Uint8Array(buffer)` is a VIEW over the caller's buffer, not a copy —
|
|
40
|
+
// same aliasing hazard as above, one indirection further out.
|
|
41
|
+
return { bytes: new Uint8Array(body.slice(0)), defaultContentType: undefined };
|
|
42
|
+
}
|
|
43
|
+
if (body instanceof Blob) {
|
|
44
|
+
// A Blob DECLARES its type in `.type`, so it contributes that as the
|
|
45
|
+
// content-type default — exactly what the platform does for
|
|
46
|
+
// `new Request(url, { body: blob })`, header omitted when the type is
|
|
47
|
+
// empty. The bare byte shapes stay default-free: bytes alone say nothing
|
|
48
|
+
// about their encoding, which is why an injected multipart Blob used to
|
|
49
|
+
// answer 500 (`UnsupportedFormEncodingError`) where the same Blob through
|
|
50
|
+
// `fetch()` answered 200.
|
|
51
|
+
return {
|
|
52
|
+
bytes: new Uint8Array(await body.arrayBuffer()),
|
|
53
|
+
defaultContentType: body.type.length > 0 ? body.type : undefined,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (typeof body === 'object' && body !== null && isPlainObject(body)) {
|
|
57
|
+
return {
|
|
58
|
+
bytes: new TextEncoder().encode(JSON.stringify(body)),
|
|
59
|
+
defaultContentType: 'application/json',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
throw new TypeError(refusalMessage(body));
|
|
63
|
+
}
|
|
64
|
+
/** A plain object: `Object.prototype` (or `null`) is its prototype. */
|
|
65
|
+
function isPlainObject(value) {
|
|
66
|
+
const proto = Object.getPrototypeOf(value);
|
|
67
|
+
return proto === Object.prototype || proto === null;
|
|
68
|
+
}
|
|
69
|
+
/** Names the received value in the refusal, so the caller sees what was wrong. */
|
|
70
|
+
function refusalMessage(value) {
|
|
71
|
+
const received = value === null
|
|
72
|
+
? 'null'
|
|
73
|
+
: typeof value === 'object'
|
|
74
|
+
? Object.getPrototypeOf(value)?.constructor
|
|
75
|
+
?.name ?? 'object'
|
|
76
|
+
: typeof value;
|
|
77
|
+
return (`inject() body must be a string, Uint8Array, ArrayBuffer, Blob, URLSearchParams, or a ` +
|
|
78
|
+
`plain object; received ${received}. The previous behaviour silently JSON-stringified ` +
|
|
79
|
+
`every other shape, which destroyed the value — pass bytes for a binary or multipart ` +
|
|
80
|
+
`body, or a plain object for JSON.`);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=inject-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-body.js","sourceRoot":"","sources":["../../src/application/inject-body.ts"],"names":[],"mappings":"AA4CA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA4B;IAE5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,kBAAkB,EAAE,mCAAmC;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,uEAAuE;QACvE,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,4EAA4E;QAC5E,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,4EAA4E;QAC5E,8DAA8D;QAC9D,OAAO,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,qEAAqE;QACrE,4DAA4D;QAC5D,sEAAsE;QACtE,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,0BAA0B;QAC1B,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO;YACL,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrD,kBAAkB,EAAE,kBAAkB;SACvC,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,uEAAuE;AACvE,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAY,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,kFAAkF;AAClF,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI;QAC7B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YAC3B,CAAC,CAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAgD,EAAE,WAAW;gBACzF,EAAE,IAAI,IAAI,QAAQ;YACpB,CAAC,CAAC,OAAO,KAAK,CAAC;IACjB,OAAO,CACL,uFAAuF;QACvF,0BAA0B,QAAQ,qDAAqD;QACvF,sFAAsF;QACtF,mCAAmC,CACpC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { IRequest, IRequestContext } from '@setu-ts/common';
|
|
2
|
+
import type { IRuntimeServices } from '@setu-ts/common';
|
|
3
|
+
import type { ServiceRegistry } from '../registry/service-registry.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Internal result of {@linkcode createRequestContext}: the immutable
|
|
6
|
+
* {@linkcode IRequestContext} plus a `setParams` mutator the kernel uses
|
|
7
|
+
* to install matched route parameters after routing. This shape is NOT
|
|
8
|
+
* exported from the package public API — only the kernel dispatch path
|
|
9
|
+
* uses `setParams`.
|
|
10
|
+
*/
|
|
11
|
+
export interface RequestContextHandle {
|
|
12
|
+
/** The per-request context. */
|
|
13
|
+
readonly ctx: IRequestContext;
|
|
14
|
+
/** Replaces the params exposed by `ctx.params` (used after route match). */
|
|
15
|
+
setParams(params: Record<string, string>): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Creates a per-request {@linkcode IRequestContext}.
|
|
19
|
+
*
|
|
20
|
+
* The returned `ctx.params` is a readonly getter over an internal slot;
|
|
21
|
+
* use {@linkcode RequestContextHandle.setParams} on the returned handle
|
|
22
|
+
* to update it after routing (the kernel does this in its dispatch
|
|
23
|
+
* terminal). This avoids mutating a `readonly` field via a cast.
|
|
24
|
+
*
|
|
25
|
+
* @param request - The incoming request
|
|
26
|
+
* @param registry - The application-scoped service registry (a child is created
|
|
27
|
+
* on first `ctx.services` read)
|
|
28
|
+
* @param runtime - Runtime services for uuid and hrtime
|
|
29
|
+
* @returns The request context handle
|
|
30
|
+
*/
|
|
31
|
+
export declare function createRequestContext(request: IRequest, registry: ServiceRegistry, runtime: IRuntimeServices): RequestContextHandle;
|
|
32
|
+
//# sourceMappingURL=request-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/context/request-context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAoB,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,4EAA4E;IAC5E,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACjD;AAmHD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,gBAAgB,GACxB,oBAAoB,CAStB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request context factory — creates a fresh per-request context whose cold
|
|
3
|
+
* members (identity, child registry, state, query, signal) are resolved on
|
|
4
|
+
* first read rather than eagerly.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import { sealRequestIdentity } from '@setu-ts/common';
|
|
9
|
+
import { ResponseBuilder } from "./response.js";
|
|
10
|
+
/** Shared empty params — replaced by `setParams` once a route matches. */
|
|
11
|
+
const EMPTY_PARAMS = Object.freeze({});
|
|
12
|
+
/**
|
|
13
|
+
* The per-request context, as a class so that every accessor lives on ONE
|
|
14
|
+
* shared prototype.
|
|
15
|
+
*
|
|
16
|
+
* The class is load-bearing rather than stylistic. An earlier attempt at the
|
|
17
|
+
* same laziness using own-property getters on a fresh object literal per
|
|
18
|
+
* request measured **13% slower** than eager construction, because each
|
|
19
|
+
* request got its own hidden class. Declared once on a prototype, the same
|
|
20
|
+
* getters are monomorphic.
|
|
21
|
+
*
|
|
22
|
+
* Cold members are resolved on first read. The eager versions each cost every
|
|
23
|
+
* request in the application to serve the minority that reads them: a child
|
|
24
|
+
* registry allocation, a `crypto`-backed UUID, a `Map`, a `URL` parse for the
|
|
25
|
+
* query string (the second in the request's life — the adapter already parsed
|
|
26
|
+
* one), and — on Node — an `AbortController`, because
|
|
27
|
+
* `@hono/node-server`'s lightweight Request creates one on first `signal` read.
|
|
28
|
+
*/
|
|
29
|
+
class RequestContext {
|
|
30
|
+
request;
|
|
31
|
+
response;
|
|
32
|
+
startTime;
|
|
33
|
+
#registry;
|
|
34
|
+
#runtime;
|
|
35
|
+
#params = EMPTY_PARAMS;
|
|
36
|
+
#id;
|
|
37
|
+
#services;
|
|
38
|
+
#state;
|
|
39
|
+
#query;
|
|
40
|
+
#signal;
|
|
41
|
+
constructor(request, registry, runtime) {
|
|
42
|
+
this.request = request;
|
|
43
|
+
this.#registry = registry;
|
|
44
|
+
this.#runtime = runtime;
|
|
45
|
+
this.response = new ResponseBuilder();
|
|
46
|
+
// Monotonic, and read eagerly on purpose: it is the request's start, so a
|
|
47
|
+
// lazy read would time the first access rather than the request.
|
|
48
|
+
this.startTime = runtime.hrtime();
|
|
49
|
+
// `raw` is OMITTED, not set to undefined, when the adapter supplied none:
|
|
50
|
+
// `IRequestContext.raw` is optional and the workspace compiles under
|
|
51
|
+
// `exactOptionalPropertyTypes`, so a getter returning `undefined` is not
|
|
52
|
+
// assignable. This reproduces the pre-M87 conditional-spread behaviour.
|
|
53
|
+
if (request.raw !== undefined) {
|
|
54
|
+
this.raw = request.raw;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Unique request ID. */
|
|
58
|
+
get id() {
|
|
59
|
+
this.#id ??= this.#runtime.uuid();
|
|
60
|
+
return this.#id;
|
|
61
|
+
}
|
|
62
|
+
/** The request-scoped child service registry. */
|
|
63
|
+
get services() {
|
|
64
|
+
this.#services ??= this.#registry.createChild();
|
|
65
|
+
return this.#services;
|
|
66
|
+
}
|
|
67
|
+
/** Matched route parameters — empty until the kernel calls `setParams`. */
|
|
68
|
+
get params() {
|
|
69
|
+
return this.#params;
|
|
70
|
+
}
|
|
71
|
+
/** Parsed query-string parameters. */
|
|
72
|
+
get query() {
|
|
73
|
+
if (this.#query === undefined) {
|
|
74
|
+
const url = new URL(this.request.url);
|
|
75
|
+
const query = {};
|
|
76
|
+
for (const [key, value] of url.searchParams.entries()) {
|
|
77
|
+
query[key] = value;
|
|
78
|
+
}
|
|
79
|
+
this.#query = query;
|
|
80
|
+
}
|
|
81
|
+
return this.#query;
|
|
82
|
+
}
|
|
83
|
+
/** Per-request scratch state. */
|
|
84
|
+
get state() {
|
|
85
|
+
this.#state ??= new Map();
|
|
86
|
+
return this.#state;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* An abort signal that is live for the life of the request.
|
|
90
|
+
*
|
|
91
|
+
* Falls back to a never-aborting sentinel when the incoming request carries
|
|
92
|
+
* no signal (an injected or test-constructed request), so handlers always
|
|
93
|
+
* have something to listen on.
|
|
94
|
+
*
|
|
95
|
+
* The sentinel is constructed **per request**, never once at module scope:
|
|
96
|
+
* Cloudflare Workers refuses `new AbortController()` in global scope
|
|
97
|
+
* ("Disallowed operation called within global scope"), because an
|
|
98
|
+
* AbortController is bound to an I/O context. A module-scope one made every
|
|
99
|
+
* application fail to boot on workerd. Caching a single instance lazily is
|
|
100
|
+
* not a fix either — workerd would then refuse to use a controller created
|
|
101
|
+
* for one request on behalf of another.
|
|
102
|
+
*/
|
|
103
|
+
get signal() {
|
|
104
|
+
this.#signal ??= this.request.signal ?? new AbortController().signal;
|
|
105
|
+
return this.#signal;
|
|
106
|
+
}
|
|
107
|
+
/** Installs matched route parameters after routing. */
|
|
108
|
+
setParams(params) {
|
|
109
|
+
this.#params = params;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Creates a per-request {@linkcode IRequestContext}.
|
|
114
|
+
*
|
|
115
|
+
* The returned `ctx.params` is a readonly getter over an internal slot;
|
|
116
|
+
* use {@linkcode RequestContextHandle.setParams} on the returned handle
|
|
117
|
+
* to update it after routing (the kernel does this in its dispatch
|
|
118
|
+
* terminal). This avoids mutating a `readonly` field via a cast.
|
|
119
|
+
*
|
|
120
|
+
* @param request - The incoming request
|
|
121
|
+
* @param registry - The application-scoped service registry (a child is created
|
|
122
|
+
* on first `ctx.services` read)
|
|
123
|
+
* @param runtime - Runtime services for uuid and hrtime
|
|
124
|
+
* @returns The request context handle
|
|
125
|
+
*/
|
|
126
|
+
export function createRequestContext(request, registry, runtime) {
|
|
127
|
+
sealRequestIdentity(request);
|
|
128
|
+
const ctx = new RequestContext(request, registry, runtime);
|
|
129
|
+
return {
|
|
130
|
+
ctx,
|
|
131
|
+
setParams(next) {
|
|
132
|
+
ctx.setParams(next);
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=request-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/context/request-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response builder — chainable configuration + terminal methods that produce
|
|
3
|
+
* the opaque {@linkcode HandlerResult} brand only the kernel creates.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import type { HandlerResult, IResponse, ResponseSnapshot, ResponseSnapshotInit } from '@setu-ts/common';
|
|
8
|
+
/**
|
|
9
|
+
* Default implementation of {@linkcode IResponse}. Configuration methods
|
|
10
|
+
* chain; terminal methods mark the builder as ended and return the brand.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ResponseBuilder implements IResponse {
|
|
13
|
+
#private;
|
|
14
|
+
status(code: number): IResponse;
|
|
15
|
+
header(name: string, value: string): IResponse;
|
|
16
|
+
appendHeader(name: string, value: string): IResponse;
|
|
17
|
+
json<T>(body: T): HandlerResult;
|
|
18
|
+
text(body: string): HandlerResult;
|
|
19
|
+
/**
|
|
20
|
+
* Sends an HTML response with the `text/html; charset=utf-8` media type.
|
|
21
|
+
*
|
|
22
|
+
* @param body - The HTML document text
|
|
23
|
+
* @returns The handler result
|
|
24
|
+
*/
|
|
25
|
+
html(body: string): HandlerResult;
|
|
26
|
+
send(body?: Uint8Array): HandlerResult;
|
|
27
|
+
redirect(url: string, status?: number): HandlerResult;
|
|
28
|
+
/**
|
|
29
|
+
* Sends a streaming response body.
|
|
30
|
+
*
|
|
31
|
+
* Accepts a web-standard {@linkcode ReadableStream} so that a handler can flush
|
|
32
|
+
* bytes progressively over a long-lived connection instead of buffering a
|
|
33
|
+
* whole body before send.
|
|
34
|
+
*
|
|
35
|
+
* @param body - A `ReadableStream` of `Uint8Array` chunks
|
|
36
|
+
* @returns The handler result
|
|
37
|
+
*/
|
|
38
|
+
stream(body: ReadableStream<Uint8Array>): HandlerResult;
|
|
39
|
+
/**
|
|
40
|
+
* Returns a snapshot of the current response state.
|
|
41
|
+
*
|
|
42
|
+
* @returns The discriminated snapshot (status, headers, and either a buffered
|
|
43
|
+
* body or a live stream, keyed on `streaming`)
|
|
44
|
+
*/
|
|
45
|
+
snapshot(): ResponseSnapshot;
|
|
46
|
+
/** Whether a terminal method has been called (used to detect short-circuits). */
|
|
47
|
+
get ended(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* The response status as currently set, defaulted to 200 — the value a
|
|
50
|
+
* completed request's diagnostics record reports. Read-only by design:
|
|
51
|
+
* status is set through {@linkcode ResponseBuilder.status}.
|
|
52
|
+
* @since 0.8.0
|
|
53
|
+
*/
|
|
54
|
+
get statusCode(): number;
|
|
55
|
+
/** Supplies the documented live headers view to an internal snapshot. */
|
|
56
|
+
headersForSnapshot(): Headers;
|
|
57
|
+
/** Supplies the current fast-path init to an internal snapshot. */
|
|
58
|
+
responseInitForSnapshot(): ResponseSnapshotInit | undefined;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/context/response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAWzB;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;;IAS/C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAK/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAK9C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAKpD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAOjC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAOjC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,aAAa;IAStC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY,GAAG,aAAa;IAQ1D;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,aAAa;IAOvD;;;;;OAKG;IACH,QAAQ,IAAI,gBAAgB;IAe5B,iFAAiF;IACjF,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAYD,yEAAyE;IACzE,kBAAkB,IAAI,OAAO;IAI7B,mEAAmE;IACnE,uBAAuB,IAAI,oBAAoB,GAAG,SAAS;CA4B5D"}
|