elysia 2.0.0-beta.12 → 2.0.0-beta.13
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/dist/adapter/bun/index.js +28 -17
- package/dist/adapter/bun/index.mjs +28 -17
- package/dist/adapter/utils.js +1 -0
- package/dist/adapter/utils.mjs +1 -0
- package/dist/adapter/web-standard/handler.js +2 -2
- package/dist/adapter/web-standard/handler.mjs +2 -2
- package/dist/compile/aot-emit.js +1 -1
- package/dist/compile/aot-emit.mjs +1 -1
- package/dist/compile/aot.d.ts +1 -1
- package/dist/compile/aot.js +2 -2
- package/dist/compile/aot.mjs +2 -2
- package/dist/compile/handler/descriptor.d.ts +2 -3
- package/dist/compile/handler/descriptor.js +6 -16
- package/dist/compile/handler/descriptor.mjs +7 -16
- package/dist/compile/handler/index.d.ts +1 -1
- package/dist/compile/handler/index.js +15 -6
- package/dist/compile/handler/index.mjs +15 -6
- package/dist/compile/handler/jit.js +71 -66
- package/dist/compile/handler/jit.mjs +72 -67
- package/dist/compile/handler/params.js +3 -2
- package/dist/compile/handler/params.mjs +4 -3
- package/dist/compile/handler/static-clone-resolver.d.ts +6 -0
- package/dist/compile/handler/static-clone-resolver.js +8 -0
- package/dist/compile/handler/static-clone-resolver.mjs +7 -0
- package/dist/compile/handler/utils.d.ts +7 -6
- package/dist/compile/handler/utils.js +23 -18
- package/dist/compile/handler/utils.mjs +23 -19
- package/dist/compile/utils.js +7 -4
- package/dist/compile/utils.mjs +7 -4
- package/dist/cookie/lib.js +2 -1
- package/dist/cookie/lib.mjs +2 -1
- package/dist/cookie/utils.d.ts +1 -1
- package/dist/cookie/utils.js +9 -23
- package/dist/cookie/utils.mjs +9 -23
- package/dist/handler/error.js +3 -4
- package/dist/handler/error.mjs +3 -4
- package/dist/handler/fetch.js +17 -13
- package/dist/handler/fetch.mjs +17 -13
- package/dist/package.js +1 -1
- package/dist/package.mjs +1 -1
- package/dist/plugin/aot/core.d.ts +2 -0
- package/dist/plugin/aot/core.js +6 -0
- package/dist/plugin/aot/core.mjs +6 -0
- package/dist/plugin/aot/hooks.js +5 -1
- package/dist/plugin/aot/hooks.mjs +5 -1
- package/dist/trace.js +14 -5
- package/dist/trace.mjs +14 -5
- package/dist/type/constants.d.ts +1 -1
- package/dist/types.d.ts +5 -4
- package/dist/utils.d.ts +0 -1
- package/package.json +4 -4
|
@@ -167,12 +167,10 @@ const BunAdapter = require_adapter_index.createAdapter({
|
|
|
167
167
|
response: require_adapter_web_standard_index.WebStandardAdapter.response,
|
|
168
168
|
listen(app, options, callback) {
|
|
169
169
|
if (app.server || app["~ext"]?.stop) throw new Error("[Elysia] Cannot call listen() while a server or teardown is active");
|
|
170
|
+
const requestReady = Promise.withResolvers();
|
|
170
171
|
function gatedFetch(request, server) {
|
|
171
|
-
return live ? live(request, server) :
|
|
172
|
-
if (!live)
|
|
173
|
-
await startupShutdown;
|
|
174
|
-
throw new Error("[Elysia] Server was stopped before it was ready");
|
|
175
|
-
}
|
|
172
|
+
return live && !cancelled ? live(request, server) : requestReady.promise.then(() => {
|
|
173
|
+
if (cancelled || !live) return unavailableFetch();
|
|
176
174
|
return live(request, server);
|
|
177
175
|
});
|
|
178
176
|
}
|
|
@@ -194,7 +192,6 @@ const BunAdapter = require_adapter_index.createAdapter({
|
|
|
194
192
|
} : serve);
|
|
195
193
|
let live;
|
|
196
194
|
let cancelled = false;
|
|
197
|
-
let startupShutdown;
|
|
198
195
|
let shutdownAttempt;
|
|
199
196
|
let ready;
|
|
200
197
|
let wsLifecycle;
|
|
@@ -280,7 +277,9 @@ const BunAdapter = require_adapter_index.createAdapter({
|
|
|
280
277
|
};
|
|
281
278
|
const nativeStop = async (closeActiveConnections, errors) => {
|
|
282
279
|
try {
|
|
283
|
-
|
|
280
|
+
const stopping = server.stop(closeActiveConnections);
|
|
281
|
+
await (closeActiveConnections ? stopping : Promise.race([stopping, force.promise]));
|
|
282
|
+
if (!closeActiveConnections && forceRequested && !forceDone) return false;
|
|
284
283
|
nativeStopped = true;
|
|
285
284
|
if (closeActiveConnections) {
|
|
286
285
|
forceDone = true;
|
|
@@ -368,6 +367,7 @@ const BunAdapter = require_adapter_index.createAdapter({
|
|
|
368
367
|
if (!forceDone) forceRequested = true;
|
|
369
368
|
}
|
|
370
369
|
cancelled = true;
|
|
370
|
+
requestReady.resolve();
|
|
371
371
|
clearAppServer(app, server);
|
|
372
372
|
let outcome;
|
|
373
373
|
if (shutdownAttempt) {
|
|
@@ -436,7 +436,6 @@ const BunAdapter = require_adapter_index.createAdapter({
|
|
|
436
436
|
}
|
|
437
437
|
})().then(resolve, reject);
|
|
438
438
|
}
|
|
439
|
-
if (!published) startupShutdown ??= outcome;
|
|
440
439
|
if (!reentrant) return outcome;
|
|
441
440
|
if (observedOutcome !== outcome) {
|
|
442
441
|
observedOutcome = outcome;
|
|
@@ -448,18 +447,30 @@ const BunAdapter = require_adapter_index.createAdapter({
|
|
|
448
447
|
};
|
|
449
448
|
ext.stop = stop;
|
|
450
449
|
const publish = () => {
|
|
451
|
-
if (cancelled || app.server !== server)
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
450
|
+
if (cancelled || app.server !== server) {
|
|
451
|
+
requestReady.resolve();
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
try {
|
|
455
|
+
built ??= build();
|
|
456
|
+
live = serve.fetch = withOrigin(built.fetch);
|
|
457
|
+
published = true;
|
|
458
|
+
if (built.websocket) serve.websocket = built.websocket;
|
|
459
|
+
if (built.routes) serve.routes = built.routes;
|
|
460
|
+
reloadServer(server, serve);
|
|
461
|
+
if (callback) callback(server);
|
|
462
|
+
} catch (error) {
|
|
463
|
+
startupFailure ??= { error };
|
|
464
|
+
throw error;
|
|
465
|
+
}
|
|
466
|
+
requestReady.resolve();
|
|
459
467
|
};
|
|
460
468
|
const start = () => {
|
|
461
469
|
modulesReady = void 0;
|
|
462
|
-
if (cancelled || app.server !== server)
|
|
470
|
+
if (cancelled || app.server !== server) {
|
|
471
|
+
requestReady.resolve();
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
463
474
|
const setupReady = setup();
|
|
464
475
|
if (setupReady && typeof setupReady.then === "function") return Promise.resolve(setupReady).then(publish);
|
|
465
476
|
publish();
|
|
@@ -166,12 +166,10 @@ const BunAdapter = createAdapter({
|
|
|
166
166
|
response: WebStandardAdapter.response,
|
|
167
167
|
listen(app, options, callback) {
|
|
168
168
|
if (app.server || app["~ext"]?.stop) throw new Error("[Elysia] Cannot call listen() while a server or teardown is active");
|
|
169
|
+
const requestReady = Promise.withResolvers();
|
|
169
170
|
function gatedFetch(request, server) {
|
|
170
|
-
return live ? live(request, server) :
|
|
171
|
-
if (!live)
|
|
172
|
-
await startupShutdown;
|
|
173
|
-
throw new Error("[Elysia] Server was stopped before it was ready");
|
|
174
|
-
}
|
|
171
|
+
return live && !cancelled ? live(request, server) : requestReady.promise.then(() => {
|
|
172
|
+
if (cancelled || !live) return unavailableFetch();
|
|
175
173
|
return live(request, server);
|
|
176
174
|
});
|
|
177
175
|
}
|
|
@@ -193,7 +191,6 @@ const BunAdapter = createAdapter({
|
|
|
193
191
|
} : serve);
|
|
194
192
|
let live;
|
|
195
193
|
let cancelled = false;
|
|
196
|
-
let startupShutdown;
|
|
197
194
|
let shutdownAttempt;
|
|
198
195
|
let ready;
|
|
199
196
|
let wsLifecycle;
|
|
@@ -279,7 +276,9 @@ const BunAdapter = createAdapter({
|
|
|
279
276
|
};
|
|
280
277
|
const nativeStop = async (closeActiveConnections, errors) => {
|
|
281
278
|
try {
|
|
282
|
-
|
|
279
|
+
const stopping = server.stop(closeActiveConnections);
|
|
280
|
+
await (closeActiveConnections ? stopping : Promise.race([stopping, force.promise]));
|
|
281
|
+
if (!closeActiveConnections && forceRequested && !forceDone) return false;
|
|
283
282
|
nativeStopped = true;
|
|
284
283
|
if (closeActiveConnections) {
|
|
285
284
|
forceDone = true;
|
|
@@ -367,6 +366,7 @@ const BunAdapter = createAdapter({
|
|
|
367
366
|
if (!forceDone) forceRequested = true;
|
|
368
367
|
}
|
|
369
368
|
cancelled = true;
|
|
369
|
+
requestReady.resolve();
|
|
370
370
|
clearAppServer(app, server);
|
|
371
371
|
let outcome;
|
|
372
372
|
if (shutdownAttempt) {
|
|
@@ -435,7 +435,6 @@ const BunAdapter = createAdapter({
|
|
|
435
435
|
}
|
|
436
436
|
})().then(resolve, reject);
|
|
437
437
|
}
|
|
438
|
-
if (!published) startupShutdown ??= outcome;
|
|
439
438
|
if (!reentrant) return outcome;
|
|
440
439
|
if (observedOutcome !== outcome) {
|
|
441
440
|
observedOutcome = outcome;
|
|
@@ -447,18 +446,30 @@ const BunAdapter = createAdapter({
|
|
|
447
446
|
};
|
|
448
447
|
ext.stop = stop;
|
|
449
448
|
const publish = () => {
|
|
450
|
-
if (cancelled || app.server !== server)
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
449
|
+
if (cancelled || app.server !== server) {
|
|
450
|
+
requestReady.resolve();
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
try {
|
|
454
|
+
built ??= build();
|
|
455
|
+
live = serve.fetch = withOrigin(built.fetch);
|
|
456
|
+
published = true;
|
|
457
|
+
if (built.websocket) serve.websocket = built.websocket;
|
|
458
|
+
if (built.routes) serve.routes = built.routes;
|
|
459
|
+
reloadServer(server, serve);
|
|
460
|
+
if (callback) callback(server);
|
|
461
|
+
} catch (error) {
|
|
462
|
+
startupFailure ??= { error };
|
|
463
|
+
throw error;
|
|
464
|
+
}
|
|
465
|
+
requestReady.resolve();
|
|
458
466
|
};
|
|
459
467
|
const start = () => {
|
|
460
468
|
modulesReady = void 0;
|
|
461
|
-
if (cancelled || app.server !== server)
|
|
469
|
+
if (cancelled || app.server !== server) {
|
|
470
|
+
requestReady.resolve();
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
462
473
|
const setupReady = setup();
|
|
463
474
|
if (setupReady && typeof setupReady.then === "function") return Promise.resolve(setupReady).then(publish);
|
|
464
475
|
publish();
|
package/dist/adapter/utils.js
CHANGED
|
@@ -145,6 +145,7 @@ function enqueueBinaryChunk(controller, chunk) {
|
|
|
145
145
|
}
|
|
146
146
|
function createStreamHandler({ mapResponse, mapCompactResponse }) {
|
|
147
147
|
return async (generator, set, request, skipFormat, owned = false) => {
|
|
148
|
+
if (request === null) return void 0;
|
|
148
149
|
if (require_utils.isByteStream(generator)) {
|
|
149
150
|
if (generator.locked) throw new TypeError("Cannot transfer a locked or consumed byte stream");
|
|
150
151
|
if (set) {
|
package/dist/adapter/utils.mjs
CHANGED
|
@@ -144,6 +144,7 @@ function enqueueBinaryChunk(controller, chunk) {
|
|
|
144
144
|
}
|
|
145
145
|
function createStreamHandler({ mapResponse, mapCompactResponse }) {
|
|
146
146
|
return async (generator, set, request, skipFormat, owned = false) => {
|
|
147
|
+
if (request === null) return void 0;
|
|
147
148
|
if (isByteStream(generator)) {
|
|
148
149
|
if (generator.locked) throw new TypeError("Cannot transfer a locked or consumed byte stream");
|
|
149
150
|
if (set) {
|
|
@@ -137,11 +137,11 @@ function mapFallback(response, set, request, owned = false) {
|
|
|
137
137
|
status: response.status,
|
|
138
138
|
headers: response.headers ? { ...response.headers } : {}
|
|
139
139
|
}, request, owned);
|
|
140
|
-
if (response instanceof require_universal_file.ElysiaFile) return handleElysiaFile(response,
|
|
140
|
+
if (response instanceof require_universal_file.ElysiaFile) return handleElysiaFile(response, set, request);
|
|
141
141
|
if (require_utils.isElysiaForm(response)) return new Response(require_utils.formToFormData(response), set);
|
|
142
142
|
if (typeof response?.next === "function" || response instanceof ReadableStream) return handleStream(response, set, request, void 0, owned);
|
|
143
143
|
if (typeof response?.then === "function") return response.then((x) => set ? mapResponse(x, set, request, owned) : mapCompactResponse(x, request, owned));
|
|
144
|
-
if (Array.isArray(response)) return Response.json(response);
|
|
144
|
+
if (Array.isArray(response)) return Response.json(response, set);
|
|
145
145
|
if (typeof response?.toResponse === "function") return set ? mapResponse(response.toResponse(), set, request, owned) : mapCompactResponse(response.toResponse(), request, owned);
|
|
146
146
|
if (responseTag(response) === "Cookie" && require_cookie_cookie.Cookie.isCookie(response)) return set ? mapResponse(response.value, set, request, owned) : mapCompactResponse(response.value, request, owned);
|
|
147
147
|
return new Response(response, set);
|
|
@@ -136,11 +136,11 @@ function mapFallback(response, set, request, owned = false) {
|
|
|
136
136
|
status: response.status,
|
|
137
137
|
headers: response.headers ? { ...response.headers } : {}
|
|
138
138
|
}, request, owned);
|
|
139
|
-
if (response instanceof ElysiaFile) return handleElysiaFile(response,
|
|
139
|
+
if (response instanceof ElysiaFile) return handleElysiaFile(response, set, request);
|
|
140
140
|
if (isElysiaForm(response)) return new Response(formToFormData(response), set);
|
|
141
141
|
if (typeof response?.next === "function" || response instanceof ReadableStream) return handleStream(response, set, request, void 0, owned);
|
|
142
142
|
if (typeof response?.then === "function") return response.then((x) => set ? mapResponse(x, set, request, owned) : mapCompactResponse(x, request, owned));
|
|
143
|
-
if (Array.isArray(response)) return Response.json(response);
|
|
143
|
+
if (Array.isArray(response)) return Response.json(response, set);
|
|
144
144
|
if (typeof response?.toResponse === "function") return set ? mapResponse(response.toResponse(), set, request, owned) : mapCompactResponse(response.toResponse(), request, owned);
|
|
145
145
|
if (responseTag(response) === "Cookie" && Cookie.isCookie(response)) return set ? mapResponse(response.value, set, request, owned) : mapCompactResponse(response.value, request, owned);
|
|
146
146
|
return new Response(response, set);
|
package/dist/compile/aot-emit.js
CHANGED
|
@@ -28,7 +28,7 @@ function reconstructCheckCode(build) {
|
|
|
28
28
|
const { defs, value } = reconstructCheck(build);
|
|
29
29
|
return checkCode(defs, value);
|
|
30
30
|
}
|
|
31
|
-
const checkFactorySource = (identifier, code) => `
|
|
31
|
+
const checkFactorySource = (identifier, code) => `(${identifier})=>{${code}}`;
|
|
32
32
|
const handlerFactorySource = (alias, code) => `function(h${alias ? "," + alias : ""}){return ${code}}`;
|
|
33
33
|
function externalsMatch(a, b) {
|
|
34
34
|
if (a.length !== b.length) return false;
|
|
@@ -27,7 +27,7 @@ function reconstructCheckCode(build) {
|
|
|
27
27
|
const { defs, value } = reconstructCheck(build);
|
|
28
28
|
return checkCode(defs, value);
|
|
29
29
|
}
|
|
30
|
-
const checkFactorySource = (identifier, code) => `
|
|
30
|
+
const checkFactorySource = (identifier, code) => `(${identifier})=>{${code}}`;
|
|
31
31
|
const handlerFactorySource = (alias, code) => `function(h${alias ? "," + alias : ""}){return ${code}}`;
|
|
32
32
|
function externalsMatch(a, b) {
|
|
33
33
|
if (a.length !== b.length) return false;
|
package/dist/compile/aot.d.ts
CHANGED
package/dist/compile/aot.js
CHANGED
|
@@ -4,8 +4,8 @@ const require_universal_env = require('../universal/env.js');
|
|
|
4
4
|
const require_package = require('../package.js');
|
|
5
5
|
|
|
6
6
|
//#region src/compile/aot.ts
|
|
7
|
-
const AOT_MANIFEST_FORMAT =
|
|
8
|
-
const AOT_ABI = `${require_package.version}:${
|
|
7
|
+
const AOT_MANIFEST_FORMAT = 4;
|
|
8
|
+
const AOT_ABI = `${require_package.version}:${4}`;
|
|
9
9
|
const sharedAotFingerprint = Object.freeze({ abi: AOT_ABI });
|
|
10
10
|
const createAotFingerprint = () => sharedAotFingerprint;
|
|
11
11
|
let activeSession;
|
package/dist/compile/aot.mjs
CHANGED
|
@@ -3,8 +3,8 @@ import { env } from "../universal/env.mjs";
|
|
|
3
3
|
import { version } from "../package.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/compile/aot.ts
|
|
6
|
-
const AOT_MANIFEST_FORMAT =
|
|
7
|
-
const AOT_ABI = `${version}:${
|
|
6
|
+
const AOT_MANIFEST_FORMAT = 4;
|
|
7
|
+
const AOT_ABI = `${version}:${4}`;
|
|
8
8
|
const sharedAotFingerprint = Object.freeze({ abi: AOT_ABI });
|
|
9
9
|
const createAotFingerprint = () => sharedAotFingerprint;
|
|
10
10
|
let activeSession;
|
|
@@ -65,10 +65,9 @@ interface DescribeRouteInput {
|
|
|
65
65
|
* Populated on each JIT compile, and read only by tests and introspection
|
|
66
66
|
*/
|
|
67
67
|
declare const routeDescriptors: WeakMap<AnyElysia, Map<string, RouteDescriptor>>;
|
|
68
|
-
declare
|
|
69
|
-
declare const lifecycleMayReturnPromise: (handlers: MaybeArray<Function> | undefined, observed: boolean) => boolean;
|
|
68
|
+
declare const lifecycleMayReturnPromise: (handlers: MaybeArray<Function> | undefined) => boolean;
|
|
70
69
|
/** Whether a hook can be skipped by a native static response. */
|
|
71
70
|
declare function isEmptyPipelineHook(hook: AnyLocalHook | undefined): boolean;
|
|
72
71
|
declare function describeRoute(input: DescribeRouteInput): RouteCompileState;
|
|
73
72
|
//#endregion
|
|
74
|
-
export { DescribeRouteInput, RouteCompileState, RouteDescriptor, describeRoute, isEmptyPipelineHook, lifecycleMayReturnPromise,
|
|
73
|
+
export { DescribeRouteInput, RouteCompileState, RouteDescriptor, describeRoute, isEmptyPipelineHook, lifecycleMayReturnPromise, routeDescriptors };
|
|
@@ -15,16 +15,7 @@ const require_sucrose = require('../../sucrose.js');
|
|
|
15
15
|
*/
|
|
16
16
|
const routeDescriptors = /* @__PURE__ */ new WeakMap();
|
|
17
17
|
const noTracePhases = /* @__PURE__ */ new Set();
|
|
18
|
-
const
|
|
19
|
-
const mayReturnIdentifierCache = /* @__PURE__ */ new WeakMap();
|
|
20
|
-
function mayReturnIdentifier(fn) {
|
|
21
|
-
let result = mayReturnIdentifierCache.get(fn);
|
|
22
|
-
if (result !== void 0) return result;
|
|
23
|
-
result = matchReturnIdentifier.test(fn.toString());
|
|
24
|
-
mayReturnIdentifierCache.set(fn, result);
|
|
25
|
-
return result;
|
|
26
|
-
}
|
|
27
|
-
const lifecycleMayReturnPromise = (handlers, observed) => handlers ? Array.isArray(handlers) ? handlers.some((fn) => !require_compile_utils.isAsyncFunction(fn) && (require_compile_utils.mayReturnPromise(fn) || observed && mayReturnIdentifier(fn))) : !require_compile_utils.isAsyncFunction(handlers) && (require_compile_utils.mayReturnPromise(handlers) || observed && mayReturnIdentifier(handlers)) : false;
|
|
18
|
+
const lifecycleMayReturnPromise = (handlers) => handlers ? Array.isArray(handlers) ? handlers.some(require_compile_utils.mayReturnPromise) : require_compile_utils.mayReturnPromise(handlers) : false;
|
|
28
19
|
const compactPrefixInference = /* @__PURE__ */ new WeakMap();
|
|
29
20
|
const compactPrefixAsync = /* @__PURE__ */ new WeakMap();
|
|
30
21
|
const inferCompactPrefix = (prefix) => {
|
|
@@ -66,7 +57,7 @@ function compactPrefixForcesAsync(prefix) {
|
|
|
66
57
|
const item = pending[i];
|
|
67
58
|
for (let j = 0; !value && j < item.added.length; j++) {
|
|
68
59
|
const fn = item.added[j];
|
|
69
|
-
value = require_compile_utils.
|
|
60
|
+
value = require_compile_utils.mayReturnPromise(fn);
|
|
70
61
|
}
|
|
71
62
|
compactPrefixAsync.set(item, value);
|
|
72
63
|
}
|
|
@@ -134,11 +125,11 @@ function describeRoute(input) {
|
|
|
134
125
|
}
|
|
135
126
|
}
|
|
136
127
|
const handlerIsAsync = isHandleFunction && require_compile_utils.isAsyncFunction(handler);
|
|
137
|
-
const errorHookForcesAsync = hasErrorHook && (hasAfterHandle || hasMapResponse || hasResponseValidator || require_compile_utils.isAsyncLifecycle(hook?.error) || lifecycleMayReturnPromise(hook?.error
|
|
128
|
+
const errorHookForcesAsync = hasErrorHook && (hasAfterHandle || hasMapResponse || hasResponseValidator || require_compile_utils.isAsyncLifecycle(hook?.error) || lifecycleMayReturnPromise(hook?.error));
|
|
138
129
|
const afterResponseForcesAsync = hasStaticAfterResponse && require_compile_utils.isAsyncLifecycle(hook?.afterResponse) || hasAfterResponse && (hasAfterHandle || hasMapResponse || hasResponseValidator || hasErrorHook);
|
|
139
|
-
const traceForcesAsync = (traceHandleOn || phaseOn("error") || phaseOn("afterResponse")) && isHandleFunction && !handlerIsAsync &&
|
|
140
|
-
const handlerResultObserved = isHandleFunction && !handlerIsAsync && (hasResponseValidator || hasAfterHandle || hasMapResponse) &&
|
|
141
|
-
const lifecycleForcesAsync = !!hook && ((beforeHandlePrefix ? compactPrefixForcesAsync(beforeHandlePrefix) : false) || lifecycleMayReturnPromise(hook.beforeHandle
|
|
130
|
+
const traceForcesAsync = (traceHandleOn || phaseOn("error") || phaseOn("afterResponse")) && isHandleFunction && !handlerIsAsync && require_compile_utils.mayReturnPromise(handler);
|
|
131
|
+
const handlerResultObserved = isHandleFunction && !handlerIsAsync && (hasResponseValidator || hasAfterHandle || hasMapResponse) && require_compile_utils.mayReturnPromise(handler);
|
|
132
|
+
const lifecycleForcesAsync = !!hook && ((beforeHandlePrefix ? compactPrefixForcesAsync(beforeHandlePrefix) : false) || lifecycleMayReturnPromise(hook.beforeHandle) || lifecycleMayReturnPromise(hook.transform) || lifecycleMayReturnPromise(hook.afterHandle) || lifecycleMayReturnPromise(hook.mapResponse));
|
|
142
133
|
const isAsync = hasBody || handlerIsAsync || errorHookForcesAsync || traceForcesAsync || afterResponseForcesAsync || handlerResultObserved || lifecycleForcesAsync || asyncCookieSign || responseValiAsync || hook && (!!require_compile_utils.isAsyncLifecycle(hook?.afterHandle) || !!require_compile_utils.isAsyncLifecycle(hook?.beforeHandle) || !!require_compile_utils.isAsyncLifecycle(hook?.transform) || !!require_compile_utils.isAsyncLifecycle(hook?.mapResponse) || !!require_compile_utils.isAsyncLifecycle(hook?.error) || bodyValiIsAsync || headersValiIsAsync || paramsValiIsAsync || queryValiIsAsync || cookieValidIsAsync);
|
|
143
134
|
const callHandlerSyncOnAsync = isAsync && isHandleFunction && !handlerIsAsync;
|
|
144
135
|
const syncErrorHook = hasErrorHook && !isAsync && !hasTrace;
|
|
@@ -192,5 +183,4 @@ function describeRoute(input) {
|
|
|
192
183
|
exports.describeRoute = describeRoute;
|
|
193
184
|
exports.isEmptyPipelineHook = isEmptyPipelineHook;
|
|
194
185
|
exports.lifecycleMayReturnPromise = lifecycleMayReturnPromise;
|
|
195
|
-
exports.mayReturnIdentifier = mayReturnIdentifier;
|
|
196
186
|
exports.routeDescriptors = routeDescriptors;
|
|
@@ -14,16 +14,7 @@ import { mergeInference, sucrose } from "../../sucrose.mjs";
|
|
|
14
14
|
*/
|
|
15
15
|
const routeDescriptors = /* @__PURE__ */ new WeakMap();
|
|
16
16
|
const noTracePhases = /* @__PURE__ */ new Set();
|
|
17
|
-
const
|
|
18
|
-
const mayReturnIdentifierCache = /* @__PURE__ */ new WeakMap();
|
|
19
|
-
function mayReturnIdentifier(fn) {
|
|
20
|
-
let result = mayReturnIdentifierCache.get(fn);
|
|
21
|
-
if (result !== void 0) return result;
|
|
22
|
-
result = matchReturnIdentifier.test(fn.toString());
|
|
23
|
-
mayReturnIdentifierCache.set(fn, result);
|
|
24
|
-
return result;
|
|
25
|
-
}
|
|
26
|
-
const lifecycleMayReturnPromise = (handlers, observed) => handlers ? Array.isArray(handlers) ? handlers.some((fn) => !isAsyncFunction(fn) && (mayReturnPromise(fn) || observed && mayReturnIdentifier(fn))) : !isAsyncFunction(handlers) && (mayReturnPromise(handlers) || observed && mayReturnIdentifier(handlers)) : false;
|
|
17
|
+
const lifecycleMayReturnPromise = (handlers) => handlers ? Array.isArray(handlers) ? handlers.some(mayReturnPromise) : mayReturnPromise(handlers) : false;
|
|
27
18
|
const compactPrefixInference = /* @__PURE__ */ new WeakMap();
|
|
28
19
|
const compactPrefixAsync = /* @__PURE__ */ new WeakMap();
|
|
29
20
|
const inferCompactPrefix = (prefix) => {
|
|
@@ -65,7 +56,7 @@ function compactPrefixForcesAsync(prefix) {
|
|
|
65
56
|
const item = pending[i];
|
|
66
57
|
for (let j = 0; !value && j < item.added.length; j++) {
|
|
67
58
|
const fn = item.added[j];
|
|
68
|
-
value =
|
|
59
|
+
value = mayReturnPromise(fn);
|
|
69
60
|
}
|
|
70
61
|
compactPrefixAsync.set(item, value);
|
|
71
62
|
}
|
|
@@ -133,11 +124,11 @@ function describeRoute(input) {
|
|
|
133
124
|
}
|
|
134
125
|
}
|
|
135
126
|
const handlerIsAsync = isHandleFunction && isAsyncFunction(handler);
|
|
136
|
-
const errorHookForcesAsync = hasErrorHook && (hasAfterHandle || hasMapResponse || hasResponseValidator || isAsyncLifecycle(hook?.error) || lifecycleMayReturnPromise(hook?.error
|
|
127
|
+
const errorHookForcesAsync = hasErrorHook && (hasAfterHandle || hasMapResponse || hasResponseValidator || isAsyncLifecycle(hook?.error) || lifecycleMayReturnPromise(hook?.error));
|
|
137
128
|
const afterResponseForcesAsync = hasStaticAfterResponse && isAsyncLifecycle(hook?.afterResponse) || hasAfterResponse && (hasAfterHandle || hasMapResponse || hasResponseValidator || hasErrorHook);
|
|
138
|
-
const traceForcesAsync = (traceHandleOn || phaseOn("error") || phaseOn("afterResponse")) && isHandleFunction && !handlerIsAsync &&
|
|
139
|
-
const handlerResultObserved = isHandleFunction && !handlerIsAsync && (hasResponseValidator || hasAfterHandle || hasMapResponse) &&
|
|
140
|
-
const lifecycleForcesAsync = !!hook && ((beforeHandlePrefix ? compactPrefixForcesAsync(beforeHandlePrefix) : false) || lifecycleMayReturnPromise(hook.beforeHandle
|
|
129
|
+
const traceForcesAsync = (traceHandleOn || phaseOn("error") || phaseOn("afterResponse")) && isHandleFunction && !handlerIsAsync && mayReturnPromise(handler);
|
|
130
|
+
const handlerResultObserved = isHandleFunction && !handlerIsAsync && (hasResponseValidator || hasAfterHandle || hasMapResponse) && mayReturnPromise(handler);
|
|
131
|
+
const lifecycleForcesAsync = !!hook && ((beforeHandlePrefix ? compactPrefixForcesAsync(beforeHandlePrefix) : false) || lifecycleMayReturnPromise(hook.beforeHandle) || lifecycleMayReturnPromise(hook.transform) || lifecycleMayReturnPromise(hook.afterHandle) || lifecycleMayReturnPromise(hook.mapResponse));
|
|
141
132
|
const isAsync = hasBody || handlerIsAsync || errorHookForcesAsync || traceForcesAsync || afterResponseForcesAsync || handlerResultObserved || lifecycleForcesAsync || asyncCookieSign || responseValiAsync || hook && (!!isAsyncLifecycle(hook?.afterHandle) || !!isAsyncLifecycle(hook?.beforeHandle) || !!isAsyncLifecycle(hook?.transform) || !!isAsyncLifecycle(hook?.mapResponse) || !!isAsyncLifecycle(hook?.error) || bodyValiIsAsync || headersValiIsAsync || paramsValiIsAsync || queryValiIsAsync || cookieValidIsAsync);
|
|
142
133
|
const callHandlerSyncOnAsync = isAsync && isHandleFunction && !handlerIsAsync;
|
|
143
134
|
const syncErrorHook = hasErrorHook && !isAsync && !hasTrace;
|
|
@@ -188,4 +179,4 @@ function describeRoute(input) {
|
|
|
188
179
|
}
|
|
189
180
|
|
|
190
181
|
//#endregion
|
|
191
|
-
export { describeRoute, isEmptyPipelineHook, lifecycleMayReturnPromise,
|
|
182
|
+
export { describeRoute, isEmptyPipelineHook, lifecycleMayReturnPromise, routeDescriptors };
|
|
@@ -14,7 +14,7 @@ declare function clearHandlerAnalysisCaches(root: AnyElysia): void;
|
|
|
14
14
|
declare function chainResolver(root: AnyElysia): ((node: ChainNode) => Partial<AppHook> | undefined) | undefined;
|
|
15
15
|
declare const localMacroRoot: (instance: AnyElysia, root: AnyElysia) => AnyElysia;
|
|
16
16
|
declare function buildNativeStaticResponse(route: InternalRoute, root: AnyElysia): Response | undefined;
|
|
17
|
-
declare function composeRouteHook(instance: AnyElysia, localHook: Partial<AnyLocalHook> | undefined, appHook: ChainNode | undefined, inheritedChain: ChainNode | undefined, root: AnyElysia, macroScope?: AnyElysia): AnyLocalHook | undefined;
|
|
17
|
+
declare function composeRouteHook(instance: AnyElysia, localHook: Partial<AnyLocalHook> | undefined, appHook: ChainNode | undefined, inheritedChain: ChainNode | undefined, root: AnyElysia, macroScope?: AnyElysia, allowCompactPrefix?: boolean): AnyLocalHook | undefined;
|
|
18
18
|
declare function compileHandler(route: InternalRoute, root: AnyElysia, precomputedStatic?: Response, liveOnly?: boolean): CompiledHandler;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { buildNativeStaticResponse, chainResolver, clearHandlerAnalysisCaches, compileHandler, composeRouteHook, localMacroRoot, resolveLocalHook, resolveWSLocalHook, setCaptureHeaderShorthand };
|
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_universal_constants = require('../../universal/constants.js');
|
|
3
3
|
const require_universal_file = require('../../universal/file.js');
|
|
4
4
|
const require_utils = require('../../utils.js');
|
|
5
|
+
const require_adapter_web_standard_handler = require('../../adapter/web-standard/handler.js');
|
|
5
6
|
const require_compile_aot = require('../aot.js');
|
|
6
7
|
const require_generation = require('../../generation.js');
|
|
7
8
|
const require_compile_handler_params = require('./params.js');
|
|
@@ -224,13 +225,16 @@ function buildNativeStaticResponse(route, root) {
|
|
|
224
225
|
if (hook && !require_compile_handler_descriptor.isEmptyPipelineHook(hook)) return;
|
|
225
226
|
const rootHeaders = frozenRoot["~ext"]?.headers;
|
|
226
227
|
if (handler instanceof Response && !rootHeaders) return handler;
|
|
227
|
-
const
|
|
228
|
+
const response = adapter.response;
|
|
229
|
+
const map = response.map;
|
|
230
|
+
const set = { headers: rootHeaders ? Object.assign(require_utils.nullObject(), rootHeaders) : require_utils.nullObject() };
|
|
231
|
+
const mapped = map === require_adapter_web_standard_handler.mapResponse ? require_adapter_web_standard_handler.mapResponse(handler, set, null) : Reflect.apply(map, response, [handler, set]);
|
|
228
232
|
if (mapped instanceof Response) return staticPrimitiveType(mapped, handler);
|
|
229
233
|
}
|
|
230
234
|
function toArray(name, hook) {
|
|
231
235
|
if (typeof hook[name] === "function") hook[name] = [hook[name]];
|
|
232
236
|
}
|
|
233
|
-
function composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope) {
|
|
237
|
+
function composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope, allowCompactPrefix = true) {
|
|
234
238
|
const resolve = chainResolver(root);
|
|
235
239
|
localHook = resolveLocalHook(localMacroRoot(macroScope ?? instance, root), localHook, root);
|
|
236
240
|
if (localHook && localHook.derive !== void 0) {
|
|
@@ -240,7 +244,7 @@ function composeRouteHook(instance, localHook, appHook, inheritedChain, root, ma
|
|
|
240
244
|
const flatAppHook = appHook ? require_utils.flattenChainMemo(root, appHook, resolve) : void 0;
|
|
241
245
|
let locals = instance !== root ? require_utils.flattenChain(require_generation.frozenRootOf(root)["~hookChain"], require_utils.isLocalScope, inheritedChain, resolve) : void 0;
|
|
242
246
|
const instanceLocal = instance !== root ? require_utils.flattenChain(instance["~hookChain"], require_utils.isLocalScope) : void 0;
|
|
243
|
-
const compactPrefix = instance !== root && !require_compile_aot.Capture.isCapturing() && !require_compile_aot.Capture.isAotBuildEnv() && resolve === void 0 && require_utils.isCompactBeforeHandleOnly(localHook) && require_utils.isCompactBeforeHandleOnly(flatAppHook) && require_utils.isCompactBeforeHandleOnly(locals) && !instanceLocal?.error ? require_utils.compactBeforeHandlePrefix(inheritedChain) : void 0;
|
|
247
|
+
const compactPrefix = allowCompactPrefix && instance !== root && !require_compile_aot.Capture.isCapturing() && !require_compile_aot.Capture.isAotBuildEnv() && resolve === void 0 && require_utils.isCompactBeforeHandleOnly(localHook) && require_utils.isCompactBeforeHandleOnly(flatAppHook) && require_utils.isCompactBeforeHandleOnly(locals) && !instanceLocal?.error ? require_utils.compactBeforeHandlePrefix(inheritedChain) : void 0;
|
|
244
248
|
let present = collectHookOrigins(localHook, void 0);
|
|
245
249
|
present = collectHookOrigins(flatAppHook, present);
|
|
246
250
|
if (compactPrefix && !present?.size && !require_utils.compactBeforeHandleConflicts(localHook) && !require_utils.compactBeforeHandleConflicts(flatAppHook) && !require_utils.compactBeforeHandleConflicts(locals)) {
|
|
@@ -296,7 +300,7 @@ function compileHandler(route, root, precomputedStatic, liveOnly = false) {
|
|
|
296
300
|
cookieConfig: void 0,
|
|
297
301
|
tracers: void 0
|
|
298
302
|
}));
|
|
299
|
-
const hook = composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope);
|
|
303
|
+
const hook = composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope, !reconstructed);
|
|
300
304
|
if (hook) {
|
|
301
305
|
promoteDerive(hook);
|
|
302
306
|
toArray("parse", hook);
|
|
@@ -320,7 +324,9 @@ function compileHandler(route, root, precomputedStatic, liveOnly = false) {
|
|
|
320
324
|
else if (!isHandleFunction && !(handler instanceof Promise) && !(!require_universal_constants.isBun && handler instanceof require_universal_file.ElysiaFile) && !declaresResponse) {
|
|
321
325
|
const rootHeaders = frozenRoot["~ext"]?.headers;
|
|
322
326
|
const set = { headers: rootHeaders ? Object.assign(require_utils.nullObject(), rootHeaders) : require_utils.nullObject() };
|
|
323
|
-
const
|
|
327
|
+
const response = adapter.response;
|
|
328
|
+
const map = response.map;
|
|
329
|
+
const mapped = map === require_adapter_web_standard_handler.mapResponse ? require_adapter_web_standard_handler.mapResponse(handler, set, null) : Reflect.apply(map, response, [handler, set]);
|
|
324
330
|
if (mapped instanceof Response) handler = staticPrimitiveType(mapped, handler);
|
|
325
331
|
}
|
|
326
332
|
const isStaticResponse = !isHandleFunction && handler instanceof Response;
|
|
@@ -339,7 +345,10 @@ function compileHandler(route, root, precomputedStatic, liveOnly = false) {
|
|
|
339
345
|
cookieConfig: reconstructed.a.includes("cc") ? require_compile_handler_reconstruct.Reconstrct.cookie(hook, root) : void 0,
|
|
340
346
|
tracers: reconstructed.a.includes("tr") ? require_compile_handler_reconstruct.Reconstrct.trace(hook, root) : void 0
|
|
341
347
|
}));
|
|
342
|
-
if (hook === void 0 && isHandleFunction && !precomputedStatic && !mountMeta && (method === "GET" || method === "HEAD") && !root["~hasTrace"] && root["~introspect"] !== true && root["~config"]?.introspect !== true && !require_utils.isNotEmpty(frozenRoot["~ext"]?.headers) && !require_compile_aot.Capture.isAotBuildEnv() && !require_compile_aot.Capture.isCapturing() && isContextFreeHandler(handler))
|
|
348
|
+
if (hook === void 0 && isHandleFunction && !precomputedStatic && !mountMeta && (method === "GET" || method === "HEAD") && !root["~hasTrace"] && root["~introspect"] !== true && root["~config"]?.introspect !== true && !require_utils.isNotEmpty(frozenRoot["~ext"]?.headers) && !require_compile_aot.Capture.isAotBuildEnv() && !require_compile_aot.Capture.isCapturing() && isContextFreeHandler(handler)) {
|
|
349
|
+
const compact = adapter.response.compact;
|
|
350
|
+
if (compact) return require_compile_handler_jit.createInlineHandler(compact, handler);
|
|
351
|
+
}
|
|
343
352
|
const state = require_compile_handler_descriptor.describeRoute({
|
|
344
353
|
method,
|
|
345
354
|
path,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isBun } from "../../universal/constants.mjs";
|
|
2
2
|
import { ElysiaFile } from "../../universal/file.mjs";
|
|
3
3
|
import { cloneHook, compactBeforeHandleConflicts, compactBeforeHandlePrefix, eventProperties, flattenChain, flattenChainMemo, flattenChainMemoReadonly, fnOrigin, isCompactBeforeHandleOnly, isLocalScope, isNotEmpty, macroEpoch, mergeHook, nullObject, replaceUrlPath } from "../../utils.mjs";
|
|
4
|
+
import { mapResponse } from "../../adapter/web-standard/handler.mjs";
|
|
4
5
|
import { Capture, Compiled } from "../aot.mjs";
|
|
5
6
|
import { frozenRootOf } from "../../generation.mjs";
|
|
6
7
|
import { resolveHandlerParams } from "./params.mjs";
|
|
@@ -223,13 +224,16 @@ function buildNativeStaticResponse(route, root) {
|
|
|
223
224
|
if (hook && !isEmptyPipelineHook(hook)) return;
|
|
224
225
|
const rootHeaders = frozenRoot["~ext"]?.headers;
|
|
225
226
|
if (handler instanceof Response && !rootHeaders) return handler;
|
|
226
|
-
const
|
|
227
|
+
const response = adapter.response;
|
|
228
|
+
const map = response.map;
|
|
229
|
+
const set = { headers: rootHeaders ? Object.assign(nullObject(), rootHeaders) : nullObject() };
|
|
230
|
+
const mapped = map === mapResponse ? mapResponse(handler, set, null) : Reflect.apply(map, response, [handler, set]);
|
|
227
231
|
if (mapped instanceof Response) return staticPrimitiveType(mapped, handler);
|
|
228
232
|
}
|
|
229
233
|
function toArray(name, hook) {
|
|
230
234
|
if (typeof hook[name] === "function") hook[name] = [hook[name]];
|
|
231
235
|
}
|
|
232
|
-
function composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope) {
|
|
236
|
+
function composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope, allowCompactPrefix = true) {
|
|
233
237
|
const resolve = chainResolver(root);
|
|
234
238
|
localHook = resolveLocalHook(localMacroRoot(macroScope ?? instance, root), localHook, root);
|
|
235
239
|
if (localHook && localHook.derive !== void 0) {
|
|
@@ -239,7 +243,7 @@ function composeRouteHook(instance, localHook, appHook, inheritedChain, root, ma
|
|
|
239
243
|
const flatAppHook = appHook ? flattenChainMemo(root, appHook, resolve) : void 0;
|
|
240
244
|
let locals = instance !== root ? flattenChain(frozenRootOf(root)["~hookChain"], isLocalScope, inheritedChain, resolve) : void 0;
|
|
241
245
|
const instanceLocal = instance !== root ? flattenChain(instance["~hookChain"], isLocalScope) : void 0;
|
|
242
|
-
const compactPrefix = instance !== root && !Capture.isCapturing() && !Capture.isAotBuildEnv() && resolve === void 0 && isCompactBeforeHandleOnly(localHook) && isCompactBeforeHandleOnly(flatAppHook) && isCompactBeforeHandleOnly(locals) && !instanceLocal?.error ? compactBeforeHandlePrefix(inheritedChain) : void 0;
|
|
246
|
+
const compactPrefix = allowCompactPrefix && instance !== root && !Capture.isCapturing() && !Capture.isAotBuildEnv() && resolve === void 0 && isCompactBeforeHandleOnly(localHook) && isCompactBeforeHandleOnly(flatAppHook) && isCompactBeforeHandleOnly(locals) && !instanceLocal?.error ? compactBeforeHandlePrefix(inheritedChain) : void 0;
|
|
243
247
|
let present = collectHookOrigins(localHook, void 0);
|
|
244
248
|
present = collectHookOrigins(flatAppHook, present);
|
|
245
249
|
if (compactPrefix && !present?.size && !compactBeforeHandleConflicts(localHook) && !compactBeforeHandleConflicts(flatAppHook) && !compactBeforeHandleConflicts(locals)) {
|
|
@@ -295,7 +299,7 @@ function compileHandler(route, root, precomputedStatic, liveOnly = false) {
|
|
|
295
299
|
cookieConfig: void 0,
|
|
296
300
|
tracers: void 0
|
|
297
301
|
}));
|
|
298
|
-
const hook = composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope);
|
|
302
|
+
const hook = composeRouteHook(instance, localHook, appHook, inheritedChain, root, macroScope, !reconstructed);
|
|
299
303
|
if (hook) {
|
|
300
304
|
promoteDerive(hook);
|
|
301
305
|
toArray("parse", hook);
|
|
@@ -319,7 +323,9 @@ function compileHandler(route, root, precomputedStatic, liveOnly = false) {
|
|
|
319
323
|
else if (!isHandleFunction && !(handler instanceof Promise) && !(!isBun && handler instanceof ElysiaFile) && !declaresResponse) {
|
|
320
324
|
const rootHeaders = frozenRoot["~ext"]?.headers;
|
|
321
325
|
const set = { headers: rootHeaders ? Object.assign(nullObject(), rootHeaders) : nullObject() };
|
|
322
|
-
const
|
|
326
|
+
const response = adapter.response;
|
|
327
|
+
const map = response.map;
|
|
328
|
+
const mapped = map === mapResponse ? mapResponse(handler, set, null) : Reflect.apply(map, response, [handler, set]);
|
|
323
329
|
if (mapped instanceof Response) handler = staticPrimitiveType(mapped, handler);
|
|
324
330
|
}
|
|
325
331
|
const isStaticResponse = !isHandleFunction && handler instanceof Response;
|
|
@@ -338,7 +344,10 @@ function compileHandler(route, root, precomputedStatic, liveOnly = false) {
|
|
|
338
344
|
cookieConfig: reconstructed.a.includes("cc") ? Reconstrct.cookie(hook, root) : void 0,
|
|
339
345
|
tracers: reconstructed.a.includes("tr") ? Reconstrct.trace(hook, root) : void 0
|
|
340
346
|
}));
|
|
341
|
-
if (hook === void 0 && isHandleFunction && !precomputedStatic && !mountMeta && (method === "GET" || method === "HEAD") && !root["~hasTrace"] && root["~introspect"] !== true && root["~config"]?.introspect !== true && !isNotEmpty(frozenRoot["~ext"]?.headers) && !Capture.isAotBuildEnv() && !Capture.isCapturing() && isContextFreeHandler(handler))
|
|
347
|
+
if (hook === void 0 && isHandleFunction && !precomputedStatic && !mountMeta && (method === "GET" || method === "HEAD") && !root["~hasTrace"] && root["~introspect"] !== true && root["~config"]?.introspect !== true && !isNotEmpty(frozenRoot["~ext"]?.headers) && !Capture.isAotBuildEnv() && !Capture.isCapturing() && isContextFreeHandler(handler)) {
|
|
348
|
+
const compact = adapter.response.compact;
|
|
349
|
+
if (compact) return createInlineHandler(compact, handler);
|
|
350
|
+
}
|
|
342
351
|
const state = describeRoute({
|
|
343
352
|
method,
|
|
344
353
|
path,
|