elysia 1.3.20 → 1.3.21
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/compose.mjs +17 -13
- package/dist/adapter/bun/handler-native.mjs +28 -22
- package/dist/adapter/bun/handler.mjs +17 -13
- package/dist/adapter/bun/index.mjs +28 -22
- package/dist/adapter/utils.mjs +17 -13
- package/dist/adapter/web-standard/handler.mjs +17 -13
- package/dist/adapter/web-standard/index.mjs +17 -13
- package/dist/bun/index.js +22 -22
- package/dist/bun/index.js.map +6 -6
- package/dist/cjs/adapter/bun/compose.js +17 -13
- package/dist/cjs/adapter/bun/handler-native.js +28 -22
- package/dist/cjs/adapter/bun/handler.js +17 -13
- package/dist/cjs/adapter/bun/index.js +28 -22
- package/dist/cjs/adapter/utils.js +17 -13
- package/dist/cjs/adapter/web-standard/handler.js +17 -13
- package/dist/cjs/adapter/web-standard/index.js +17 -13
- package/dist/cjs/compose.js +84 -67
- package/dist/cjs/index.js +115 -92
- package/dist/compose.mjs +84 -67
- package/dist/index.mjs +115 -92
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -2298,22 +2298,26 @@ var handleFile = (response, set2) => {
|
|
|
2298
2298
|
try {
|
|
2299
2299
|
for await (let chunk of generator) {
|
|
2300
2300
|
if (end) break;
|
|
2301
|
-
if (chunk != null)
|
|
2301
|
+
if (chunk != null)
|
|
2302
2302
|
if (chunk.toSSE)
|
|
2303
2303
|
controller.enqueue(chunk.toSSE());
|
|
2304
|
-
else
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2304
|
+
else {
|
|
2305
|
+
if (typeof chunk == "object")
|
|
2306
|
+
try {
|
|
2307
|
+
controller.enqueue(
|
|
2308
|
+
format(JSON.stringify(chunk))
|
|
2309
|
+
);
|
|
2310
|
+
} catch {
|
|
2311
|
+
controller.enqueue(
|
|
2312
|
+
format(chunk.toString())
|
|
2313
|
+
);
|
|
2314
|
+
}
|
|
2315
|
+
else
|
|
2310
2316
|
controller.enqueue(format(chunk.toString()));
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
);
|
|
2316
|
-
}
|
|
2317
|
+
isSSE || await new Promise(
|
|
2318
|
+
(resolve) => setTimeout(() => resolve(), 0)
|
|
2319
|
+
);
|
|
2320
|
+
}
|
|
2317
2321
|
}
|
|
2318
2322
|
} catch (error2) {
|
|
2319
2323
|
console.warn(error2);
|
|
@@ -4398,11 +4402,16 @@ try{a${index}.push(JSON.parse(value))}catch{a${index}.push(value)}if(deepMemory=
|
|
|
4398
4402
|
}
|
|
4399
4403
|
}
|
|
4400
4404
|
let isAsyncHandler = typeof handler == "function" && isAsync(handler), saveResponse = hasTrace || hooks.afterResponse?.length ? "c.response= " : "", maybeAsync = hasCookie || hasBody || isAsyncHandler || !!hooks.parse?.length || !!hooks.afterHandle?.some(isAsync) || !!hooks.beforeHandle?.some(isAsync) || !!hooks.transform?.some(isAsync) || !!hooks.mapResponse?.some(isAsync), maybeStream = (typeof handler == "function" ? isGenerator(handler) : !1) || !!hooks.beforeHandle?.some(isGenerator) || !!hooks.afterHandle?.some(isGenerator) || !!hooks.transform?.some(isGenerator), responseKeys = Object.keys(validator.response ?? {}), hasMultipleResponses = responseKeys.length > 1, hasSingle200 = responseKeys.length === 0 || responseKeys.length === 1 && responseKeys[0] === "200", hasSet = inference.cookie || inference.set || hasHeaders || hasTrace || hasMultipleResponses || !hasSingle200 || isHandleFn && hasDefaultHeaders || maybeStream, afterResponse = () => {
|
|
4401
|
-
if (!hooks.afterResponse?.length) return "";
|
|
4405
|
+
if (!hooks.afterResponse?.length && !hasTrace) return "";
|
|
4402
4406
|
let afterResponse2 = "", prefix = hooks.afterResponse?.some(isAsync) ? "async " : "";
|
|
4403
4407
|
afterResponse2 += `
|
|
4404
4408
|
setImmediate(${prefix}()=>{`;
|
|
4405
|
-
let reporter =
|
|
4409
|
+
let reporter = createReport({
|
|
4410
|
+
trace: hooks.trace,
|
|
4411
|
+
addFn: (word) => {
|
|
4412
|
+
afterResponse2 += word;
|
|
4413
|
+
}
|
|
4414
|
+
})("afterResponse", {
|
|
4406
4415
|
total: hooks.afterResponse?.length
|
|
4407
4416
|
});
|
|
4408
4417
|
if (hooks.afterResponse?.length && hooks.afterResponse)
|
|
@@ -4419,7 +4428,7 @@ ${prefix2}e.afterResponse[${i}](c)
|
|
|
4419
4428
|
}, mapResponse3 = (r = "r") => {
|
|
4420
4429
|
let after = afterResponse(), response = `${hasSet ? "mapResponse" : "mapCompactResponse"}(${saveResponse}${r}${hasSet ? ",c.set" : ""}${mapResponseContext})
|
|
4421
4430
|
`;
|
|
4422
|
-
return after
|
|
4431
|
+
return after ? `const _res=${response}` + after + "return _res" : `return ${response}`;
|
|
4423
4432
|
}, mapResponseContext = maybeStream || adapter.mapResponseContext ? `,${adapter.mapResponseContext}` : "";
|
|
4424
4433
|
(hasTrace || inference.route) && (fnLiteral += `c.route=\`${path}\`
|
|
4425
4434
|
`);
|
|
@@ -4573,15 +4582,16 @@ delete c.contentType`);
|
|
|
4573
4582
|
}
|
|
4574
4583
|
fnLiteral += "}catch(error){throw new ParseError(error)}";
|
|
4575
4584
|
}
|
|
4576
|
-
if (parseReporter.resolve(), hooks?.transform) {
|
|
4585
|
+
if (parseReporter.resolve(), hooks?.transform || hasTrace) {
|
|
4577
4586
|
let reporter = report("transform", {
|
|
4578
|
-
total: hooks.transform
|
|
4587
|
+
total: hooks.transform?.length
|
|
4579
4588
|
});
|
|
4580
|
-
hooks.transform
|
|
4581
|
-
`
|
|
4582
|
-
|
|
4583
|
-
let
|
|
4584
|
-
|
|
4589
|
+
if (hooks.transform?.length) {
|
|
4590
|
+
fnLiteral += `let transformed
|
|
4591
|
+
`;
|
|
4592
|
+
for (let i = 0; i < hooks.transform.length; i++) {
|
|
4593
|
+
let transform = hooks.transform[i], endUnit = reporter.resolveChild(transform.fn.name);
|
|
4594
|
+
fnLiteral += isAsync(transform) ? `transformed=await e.transform[${i}](c)
|
|
4585
4595
|
` : `transformed=e.transform[${i}](c)
|
|
4586
4596
|
`, transform.subType === "mapDerive" ? fnLiteral += "if(transformed instanceof ElysiaCustomStatusResponse){" + mapResponse3("transformed") + `}else{transformed.request=c.request
|
|
4587
4597
|
transformed.store=c.store
|
|
@@ -4593,6 +4603,7 @@ transformed.set=c.set
|
|
|
4593
4603
|
transformed.error=c.error
|
|
4594
4604
|
c=transformed}` : fnLiteral += "if(transformed instanceof ElysiaCustomStatusResponse){" + mapResponse3("transformed") + `}else Object.assign(c,transformed)
|
|
4595
4605
|
`, endUnit();
|
|
4606
|
+
}
|
|
4596
4607
|
}
|
|
4597
4608
|
reporter.resolve();
|
|
4598
4609
|
}
|
|
@@ -4780,14 +4791,15 @@ for(const [key,value] of Object.entries(c.cookie))cookieValue[key]=value.value
|
|
|
4780
4791
|
)), cookieValidator.isOptional && (fnLiteral += "}");
|
|
4781
4792
|
}
|
|
4782
4793
|
}
|
|
4783
|
-
if (hooks?.beforeHandle) {
|
|
4794
|
+
if (hooks?.beforeHandle || hasTrace) {
|
|
4784
4795
|
let reporter = report("beforeHandle", {
|
|
4785
|
-
total: hooks.beforeHandle
|
|
4796
|
+
total: hooks.beforeHandle?.length
|
|
4786
4797
|
}), hasResolve = !1;
|
|
4787
|
-
|
|
4788
|
-
let
|
|
4789
|
-
|
|
4790
|
-
|
|
4798
|
+
if (hooks.beforeHandle?.length)
|
|
4799
|
+
for (let i = 0; i < hooks.beforeHandle.length; i++) {
|
|
4800
|
+
let beforeHandle = hooks.beforeHandle[i], endUnit = reporter.resolveChild(beforeHandle.fn.name), returning = hasReturn(beforeHandle);
|
|
4801
|
+
if (beforeHandle.subType === "resolve" || beforeHandle.subType === "mapResolve")
|
|
4802
|
+
hasResolve || (hasResolve = !0, fnLiteral += `
|
|
4791
4803
|
let resolved
|
|
4792
4804
|
`), fnLiteral += isAsync(beforeHandle) ? `resolved=await e.beforeHandle[${i}](c);
|
|
4793
4805
|
` : `resolved=e.beforeHandle[${i}](c);
|
|
@@ -4800,76 +4812,78 @@ resolved.redirect=c.redirect
|
|
|
4800
4812
|
resolved.set=c.set
|
|
4801
4813
|
resolved.error=c.error
|
|
4802
4814
|
c=resolved}` : fnLiteral += "if(resolved instanceof ElysiaCustomStatusResponse){" + mapResponse3("resolved") + `}else Object.assign(c, resolved)
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4815
|
+
`, endUnit();
|
|
4816
|
+
else if (!returning)
|
|
4817
|
+
fnLiteral += isAsync(beforeHandle) ? `await e.beforeHandle[${i}](c)
|
|
4806
4818
|
` : `e.beforeHandle[${i}](c)
|
|
4807
4819
|
`, endUnit();
|
|
4808
|
-
|
|
4809
|
-
|
|
4820
|
+
else {
|
|
4821
|
+
if (fnLiteral += isAsync(beforeHandle) ? `be=await e.beforeHandle[${i}](c)
|
|
4810
4822
|
` : `be=e.beforeHandle[${i}](c)
|
|
4811
|
-
`, endUnit("be"), fnLiteral += "if(be!==undefined){", reporter.resolve(), hooks.afterHandle?.length) {
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4823
|
+
`, endUnit("be"), fnLiteral += "if(be!==undefined){", reporter.resolve(), hooks.afterHandle?.length || hasTrace) {
|
|
4824
|
+
report("handle", {
|
|
4825
|
+
name: isHandleFn ? handler.name : void 0
|
|
4826
|
+
}).resolve();
|
|
4827
|
+
let reporter2 = report("afterHandle", {
|
|
4828
|
+
total: hooks.afterHandle?.length
|
|
4829
|
+
});
|
|
4830
|
+
if (hooks.afterHandle?.length)
|
|
4831
|
+
for (let i2 = 0; i2 < hooks.afterHandle.length; i2++) {
|
|
4832
|
+
let hook = hooks.afterHandle[i2], returning2 = hasReturn(hook), endUnit2 = reporter2.resolveChild(hook.fn.name);
|
|
4833
|
+
fnLiteral += `c.response = be
|
|
4821
4834
|
`, returning2 ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i2}](c)
|
|
4822
4835
|
` : `af=e.afterHandle[${i2}](c)
|
|
4823
4836
|
`, fnLiteral += `if(af!==undefined) c.response=be=af
|
|
4824
4837
|
`) : fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i2}](c, be)
|
|
4825
4838
|
` : `e.afterHandle[${i2}](c, be)
|
|
4826
4839
|
`, endUnit2("af");
|
|
4840
|
+
}
|
|
4841
|
+
reporter2.resolve();
|
|
4827
4842
|
}
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
if (hooks.mapResponse?.length) {
|
|
4835
|
-
fnLiteral += `c.response=be
|
|
4843
|
+
validator.response && (fnLiteral += validation.response("be"));
|
|
4844
|
+
let mapResponseReporter = report("mapResponse", {
|
|
4845
|
+
total: hooks.mapResponse?.length
|
|
4846
|
+
});
|
|
4847
|
+
if (hooks.mapResponse?.length) {
|
|
4848
|
+
fnLiteral += `c.response=be
|
|
4836
4849
|
`;
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4850
|
+
for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {
|
|
4851
|
+
let mapResponse4 = hooks.mapResponse[i2], endUnit2 = mapResponseReporter.resolveChild(
|
|
4852
|
+
mapResponse4.fn.name
|
|
4853
|
+
);
|
|
4854
|
+
fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse4) ? "await " : ""}e.mapResponse[${i2}](c)
|
|
4842
4855
|
if(mr!==undefined)be=c.response=mr}`, endUnit2();
|
|
4856
|
+
}
|
|
4843
4857
|
}
|
|
4844
|
-
|
|
4845
|
-
mapResponseReporter.resolve(), fnLiteral += encodeCookie(), fnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${mapResponseContext})}
|
|
4858
|
+
mapResponseReporter.resolve(), fnLiteral += encodeCookie(), fnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${mapResponseContext})}
|
|
4846
4859
|
`;
|
|
4860
|
+
}
|
|
4847
4861
|
}
|
|
4848
|
-
}
|
|
4849
4862
|
reporter.resolve();
|
|
4850
4863
|
}
|
|
4851
|
-
if (hooks.afterHandle?.length) {
|
|
4864
|
+
if (hooks.afterHandle?.length || hasTrace) {
|
|
4852
4865
|
let handleReporter = report("handle", {
|
|
4853
4866
|
name: isHandleFn ? handler.name : void 0
|
|
4854
4867
|
});
|
|
4855
|
-
hooks.afterHandle
|
|
4868
|
+
hooks.afterHandle?.length ? fnLiteral += isAsyncHandler ? `let r=c.response=await ${handle}
|
|
4856
4869
|
` : `let r=c.response=${handle}
|
|
4857
4870
|
` : fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
4858
4871
|
` : `let r=${handle}
|
|
4859
4872
|
`, handleReporter.resolve();
|
|
4860
4873
|
let reporter = report("afterHandle", {
|
|
4861
|
-
total: hooks.afterHandle
|
|
4874
|
+
total: hooks.afterHandle?.length
|
|
4862
4875
|
});
|
|
4863
|
-
|
|
4864
|
-
let
|
|
4865
|
-
|
|
4876
|
+
if (hooks.afterHandle?.length)
|
|
4877
|
+
for (let i = 0; i < hooks.afterHandle.length; i++) {
|
|
4878
|
+
let hook = hooks.afterHandle[i], returning = hasReturn(hook), endUnit = reporter.resolveChild(hook.fn.name);
|
|
4879
|
+
returning ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i}](c)
|
|
4866
4880
|
` : `af=e.afterHandle[${i}](c)
|
|
4867
4881
|
`, endUnit("af"), validator.response ? (fnLiteral += "if(af!==undefined){", reporter.resolve(), fnLiteral += validation.response("af"), fnLiteral += "c.response=af}") : (fnLiteral += "if(af!==undefined){", reporter.resolve(), fnLiteral += "c.response=af}")) : (fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i}](c)
|
|
4868
4882
|
` : `e.afterHandle[${i}](c)
|
|
4869
4883
|
`, endUnit());
|
|
4870
|
-
|
|
4871
|
-
reporter.resolve(), fnLiteral += `r=c.response
|
|
4872
|
-
|
|
4884
|
+
}
|
|
4885
|
+
reporter.resolve(), hooks.afterHandle?.length && (fnLiteral += `r=c.response
|
|
4886
|
+
`), validator.response && (fnLiteral += validation.response()), fnLiteral += encodeCookie();
|
|
4873
4887
|
let mapResponseReporter = report("mapResponse", {
|
|
4874
4888
|
total: hooks.mapResponse?.length
|
|
4875
4889
|
});
|
|
@@ -4887,7 +4901,7 @@ if(mr!==undefined)r=c.response=mr
|
|
|
4887
4901
|
let handleReporter = report("handle", {
|
|
4888
4902
|
name: isHandleFn ? handler.name : void 0
|
|
4889
4903
|
});
|
|
4890
|
-
if (validator.response || hooks.mapResponse?.length) {
|
|
4904
|
+
if (validator.response || hooks.mapResponse?.length || hasTrace) {
|
|
4891
4905
|
fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
4892
4906
|
` : `let r=${handle}
|
|
4893
4907
|
`, handleReporter.resolve(), validator.response && (fnLiteral += validation.response());
|
|
@@ -5207,22 +5221,29 @@ map: switch(p){
|
|
|
5207
5221
|
fnLiteral += word;
|
|
5208
5222
|
}
|
|
5209
5223
|
}), afterResponse = () => {
|
|
5210
|
-
if (!hooks.afterResponse?.length) return "";
|
|
5211
|
-
let afterResponse2 = "", prefix = hooks.afterResponse
|
|
5224
|
+
if (!hooks.afterResponse?.length && !hasTrace) return "";
|
|
5225
|
+
let afterResponse2 = "", prefix = hooks.afterResponse?.some(isAsync) ? "async" : "";
|
|
5212
5226
|
afterResponse2 += `
|
|
5213
5227
|
setImmediate(${prefix}()=>{`;
|
|
5214
|
-
let reporter =
|
|
5228
|
+
let reporter = createReport({
|
|
5229
|
+
context: "context",
|
|
5230
|
+
trace: hooks.trace,
|
|
5231
|
+
addFn: (word) => {
|
|
5232
|
+
afterResponse2 += word;
|
|
5233
|
+
}
|
|
5234
|
+
})("afterResponse", {
|
|
5215
5235
|
total: hooks.afterResponse?.length,
|
|
5216
5236
|
name: "context"
|
|
5217
5237
|
});
|
|
5218
|
-
|
|
5219
|
-
let
|
|
5220
|
-
|
|
5238
|
+
if (hooks.afterResponse?.length && hooks.afterResponse)
|
|
5239
|
+
for (let i = 0; i < hooks.afterResponse.length; i++) {
|
|
5240
|
+
let fn = hooks.afterResponse[i].fn, endUnit = reporter.resolveChild(fn.name);
|
|
5241
|
+
afterResponse2 += `
|
|
5221
5242
|
${isAsyncName(fn) ? "await " : ""}afterResponse[${i}](context)
|
|
5222
5243
|
`, endUnit();
|
|
5223
|
-
|
|
5224
|
-
return afterResponse2 += `})
|
|
5225
|
-
`,
|
|
5244
|
+
}
|
|
5245
|
+
return reporter.resolve(), afterResponse2 += `})
|
|
5246
|
+
`, afterResponse2;
|
|
5226
5247
|
};
|
|
5227
5248
|
fnLiteral += `const set=context.set
|
|
5228
5249
|
let _r
|
|
@@ -5230,7 +5251,7 @@ if(!context.code)context.code=error.code??error[ERROR_CODE]
|
|
|
5230
5251
|
if(!(context.error instanceof Error))context.error=error
|
|
5231
5252
|
if(error instanceof ElysiaCustomStatusResponse){set.status=error.status=error.code
|
|
5232
5253
|
error.message=error.response}`, adapter.declare && (fnLiteral += adapter.declare);
|
|
5233
|
-
let saveResponse = hasTrace || hooks.afterResponse?.length
|
|
5254
|
+
let saveResponse = hasTrace || hooks.afterResponse?.length ? "context.response = " : "";
|
|
5234
5255
|
if (app.event.error)
|
|
5235
5256
|
for (let i = 0; i < app.event.error.length; i++) {
|
|
5236
5257
|
let handler = app.event.error[i], response = `${isAsync(handler) ? "await " : ""}onError[${i}](context)
|
|
@@ -5657,7 +5678,9 @@ for(const [k,v] of c.request.headers.entries())c.headers[k]=v
|
|
|
5657
5678
|
),
|
|
5658
5679
|
websocket: {
|
|
5659
5680
|
...app.config.websocket || {},
|
|
5660
|
-
...websocket || {}
|
|
5681
|
+
...websocket || {},
|
|
5682
|
+
// @ts-expect-error not available in this variant of options type
|
|
5683
|
+
...options.websocket || {}
|
|
5661
5684
|
},
|
|
5662
5685
|
fetch: app.fetch
|
|
5663
5686
|
} : {
|
|
@@ -5763,7 +5786,7 @@ for(const [k,v] of c.request.headers.entries())c.headers[k]=v
|
|
|
5763
5786
|
...(app.event.error ?? []).map(
|
|
5764
5787
|
(x) => typeof x == "function" ? x : x.fn
|
|
5765
5788
|
)
|
|
5766
|
-
].filter((x) => x),
|
|
5789
|
+
].filter((x) => x), hasCustomErrorHandlers = errorHandlers.length > 0, handleErrors = hasCustomErrorHandlers ? async (ws, error2) => {
|
|
5767
5790
|
for (let handleError of errorHandlers) {
|
|
5768
5791
|
let response2 = handleError(
|
|
5769
5792
|
Object.assign(context, { error: error2 })
|
|
@@ -5800,14 +5823,14 @@ for(const [k,v] of c.request.headers.entries())c.headers[k]=v
|
|
|
5800
5823
|
},
|
|
5801
5824
|
message: async (ws, _message) => {
|
|
5802
5825
|
let message = await parseMessage(ws, _message);
|
|
5803
|
-
if (validateMessage?.Check(message) === !1)
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
message
|
|
5809
|
-
).message
|
|
5826
|
+
if (validateMessage?.Check(message) === !1) {
|
|
5827
|
+
let validationError = new ValidationError(
|
|
5828
|
+
"message",
|
|
5829
|
+
validateMessage,
|
|
5830
|
+
message
|
|
5810
5831
|
);
|
|
5832
|
+
return hasCustomErrorHandlers ? handleErrors(ws, validationError) : void ws.send(validationError.message);
|
|
5833
|
+
}
|
|
5811
5834
|
try {
|
|
5812
5835
|
await handleResponse3(
|
|
5813
5836
|
ws,
|
|
@@ -7345,7 +7368,7 @@ var _Elysia = class _Elysia {
|
|
|
7345
7368
|
if (typeof plugin2 == "function") return plugin2(this);
|
|
7346
7369
|
if (plugin2 instanceof _Elysia)
|
|
7347
7370
|
return this._use(plugin2).compile();
|
|
7348
|
-
if (plugin2.constructor
|
|
7371
|
+
if (plugin2.constructor?.name === "Elysia")
|
|
7349
7372
|
return this._use(
|
|
7350
7373
|
plugin2
|
|
7351
7374
|
).compile();
|
|
@@ -7353,9 +7376,9 @@ var _Elysia = class _Elysia {
|
|
|
7353
7376
|
return plugin2.default(this);
|
|
7354
7377
|
if (plugin2.default instanceof _Elysia)
|
|
7355
7378
|
return this._use(plugin2.default);
|
|
7356
|
-
if (plugin2.constructor
|
|
7379
|
+
if (plugin2.constructor?.name === "Elysia")
|
|
7357
7380
|
return this._use(plugin2.default);
|
|
7358
|
-
if (plugin2.constructor
|
|
7381
|
+
if (plugin2.constructor?.name === "_Elysia")
|
|
7359
7382
|
return this._use(plugin2.default);
|
|
7360
7383
|
try {
|
|
7361
7384
|
return this._use(plugin2.default);
|
package/dist/compose.mjs
CHANGED
|
@@ -2599,11 +2599,16 @@ try{a${index}.push(JSON.parse(value))}catch{a${index}.push(value)}if(deepMemory=
|
|
|
2599
2599
|
}
|
|
2600
2600
|
}
|
|
2601
2601
|
let isAsyncHandler = typeof handler == "function" && isAsync(handler), saveResponse = hasTrace || hooks.afterResponse?.length ? "c.response= " : "", maybeAsync = hasCookie || hasBody || isAsyncHandler || !!hooks.parse?.length || !!hooks.afterHandle?.some(isAsync) || !!hooks.beforeHandle?.some(isAsync) || !!hooks.transform?.some(isAsync) || !!hooks.mapResponse?.some(isAsync), maybeStream = (typeof handler == "function" ? isGenerator(handler) : !1) || !!hooks.beforeHandle?.some(isGenerator) || !!hooks.afterHandle?.some(isGenerator) || !!hooks.transform?.some(isGenerator), responseKeys = Object.keys(validator.response ?? {}), hasMultipleResponses = responseKeys.length > 1, hasSingle200 = responseKeys.length === 0 || responseKeys.length === 1 && responseKeys[0] === "200", hasSet = inference.cookie || inference.set || hasHeaders || hasTrace || hasMultipleResponses || !hasSingle200 || isHandleFn && hasDefaultHeaders || maybeStream, afterResponse = () => {
|
|
2602
|
-
if (!hooks.afterResponse?.length) return "";
|
|
2602
|
+
if (!hooks.afterResponse?.length && !hasTrace) return "";
|
|
2603
2603
|
let afterResponse2 = "", prefix = hooks.afterResponse?.some(isAsync) ? "async " : "";
|
|
2604
2604
|
afterResponse2 += `
|
|
2605
2605
|
setImmediate(${prefix}()=>{`;
|
|
2606
|
-
let reporter =
|
|
2606
|
+
let reporter = createReport({
|
|
2607
|
+
trace: hooks.trace,
|
|
2608
|
+
addFn: (word) => {
|
|
2609
|
+
afterResponse2 += word;
|
|
2610
|
+
}
|
|
2611
|
+
})("afterResponse", {
|
|
2607
2612
|
total: hooks.afterResponse?.length
|
|
2608
2613
|
});
|
|
2609
2614
|
if (hooks.afterResponse?.length && hooks.afterResponse)
|
|
@@ -2620,7 +2625,7 @@ ${prefix2}e.afterResponse[${i}](c)
|
|
|
2620
2625
|
}, mapResponse = (r = "r") => {
|
|
2621
2626
|
let after = afterResponse(), response = `${hasSet ? "mapResponse" : "mapCompactResponse"}(${saveResponse}${r}${hasSet ? ",c.set" : ""}${mapResponseContext})
|
|
2622
2627
|
`;
|
|
2623
|
-
return after
|
|
2628
|
+
return after ? `const _res=${response}` + after + "return _res" : `return ${response}`;
|
|
2624
2629
|
}, mapResponseContext = maybeStream || adapter.mapResponseContext ? `,${adapter.mapResponseContext}` : "";
|
|
2625
2630
|
(hasTrace || inference.route) && (fnLiteral += `c.route=\`${path}\`
|
|
2626
2631
|
`);
|
|
@@ -2774,15 +2779,16 @@ delete c.contentType`);
|
|
|
2774
2779
|
}
|
|
2775
2780
|
fnLiteral += "}catch(error){throw new ParseError(error)}";
|
|
2776
2781
|
}
|
|
2777
|
-
if (parseReporter.resolve(), hooks?.transform) {
|
|
2782
|
+
if (parseReporter.resolve(), hooks?.transform || hasTrace) {
|
|
2778
2783
|
let reporter = report("transform", {
|
|
2779
|
-
total: hooks.transform
|
|
2784
|
+
total: hooks.transform?.length
|
|
2780
2785
|
});
|
|
2781
|
-
hooks.transform
|
|
2782
|
-
`
|
|
2783
|
-
|
|
2784
|
-
let
|
|
2785
|
-
|
|
2786
|
+
if (hooks.transform?.length) {
|
|
2787
|
+
fnLiteral += `let transformed
|
|
2788
|
+
`;
|
|
2789
|
+
for (let i = 0; i < hooks.transform.length; i++) {
|
|
2790
|
+
let transform = hooks.transform[i], endUnit = reporter.resolveChild(transform.fn.name);
|
|
2791
|
+
fnLiteral += isAsync(transform) ? `transformed=await e.transform[${i}](c)
|
|
2786
2792
|
` : `transformed=e.transform[${i}](c)
|
|
2787
2793
|
`, transform.subType === "mapDerive" ? fnLiteral += "if(transformed instanceof ElysiaCustomStatusResponse){" + mapResponse("transformed") + `}else{transformed.request=c.request
|
|
2788
2794
|
transformed.store=c.store
|
|
@@ -2794,6 +2800,7 @@ transformed.set=c.set
|
|
|
2794
2800
|
transformed.error=c.error
|
|
2795
2801
|
c=transformed}` : fnLiteral += "if(transformed instanceof ElysiaCustomStatusResponse){" + mapResponse("transformed") + `}else Object.assign(c,transformed)
|
|
2796
2802
|
`, endUnit();
|
|
2803
|
+
}
|
|
2797
2804
|
}
|
|
2798
2805
|
reporter.resolve();
|
|
2799
2806
|
}
|
|
@@ -2981,14 +2988,15 @@ for(const [key,value] of Object.entries(c.cookie))cookieValue[key]=value.value
|
|
|
2981
2988
|
)), cookieValidator.isOptional && (fnLiteral += "}");
|
|
2982
2989
|
}
|
|
2983
2990
|
}
|
|
2984
|
-
if (hooks?.beforeHandle) {
|
|
2991
|
+
if (hooks?.beforeHandle || hasTrace) {
|
|
2985
2992
|
let reporter = report("beforeHandle", {
|
|
2986
|
-
total: hooks.beforeHandle
|
|
2993
|
+
total: hooks.beforeHandle?.length
|
|
2987
2994
|
}), hasResolve = !1;
|
|
2988
|
-
|
|
2989
|
-
let
|
|
2990
|
-
|
|
2991
|
-
|
|
2995
|
+
if (hooks.beforeHandle?.length)
|
|
2996
|
+
for (let i = 0; i < hooks.beforeHandle.length; i++) {
|
|
2997
|
+
let beforeHandle = hooks.beforeHandle[i], endUnit = reporter.resolveChild(beforeHandle.fn.name), returning = hasReturn(beforeHandle);
|
|
2998
|
+
if (beforeHandle.subType === "resolve" || beforeHandle.subType === "mapResolve")
|
|
2999
|
+
hasResolve || (hasResolve = !0, fnLiteral += `
|
|
2992
3000
|
let resolved
|
|
2993
3001
|
`), fnLiteral += isAsync(beforeHandle) ? `resolved=await e.beforeHandle[${i}](c);
|
|
2994
3002
|
` : `resolved=e.beforeHandle[${i}](c);
|
|
@@ -3001,76 +3009,78 @@ resolved.redirect=c.redirect
|
|
|
3001
3009
|
resolved.set=c.set
|
|
3002
3010
|
resolved.error=c.error
|
|
3003
3011
|
c=resolved}` : fnLiteral += "if(resolved instanceof ElysiaCustomStatusResponse){" + mapResponse("resolved") + `}else Object.assign(c, resolved)
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3012
|
+
`, endUnit();
|
|
3013
|
+
else if (!returning)
|
|
3014
|
+
fnLiteral += isAsync(beforeHandle) ? `await e.beforeHandle[${i}](c)
|
|
3007
3015
|
` : `e.beforeHandle[${i}](c)
|
|
3008
3016
|
`, endUnit();
|
|
3009
|
-
|
|
3010
|
-
|
|
3017
|
+
else {
|
|
3018
|
+
if (fnLiteral += isAsync(beforeHandle) ? `be=await e.beforeHandle[${i}](c)
|
|
3011
3019
|
` : `be=e.beforeHandle[${i}](c)
|
|
3012
|
-
`, endUnit("be"), fnLiteral += "if(be!==undefined){", reporter.resolve(), hooks.afterHandle?.length) {
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3020
|
+
`, endUnit("be"), fnLiteral += "if(be!==undefined){", reporter.resolve(), hooks.afterHandle?.length || hasTrace) {
|
|
3021
|
+
report("handle", {
|
|
3022
|
+
name: isHandleFn ? handler.name : void 0
|
|
3023
|
+
}).resolve();
|
|
3024
|
+
let reporter2 = report("afterHandle", {
|
|
3025
|
+
total: hooks.afterHandle?.length
|
|
3026
|
+
});
|
|
3027
|
+
if (hooks.afterHandle?.length)
|
|
3028
|
+
for (let i2 = 0; i2 < hooks.afterHandle.length; i2++) {
|
|
3029
|
+
let hook = hooks.afterHandle[i2], returning2 = hasReturn(hook), endUnit2 = reporter2.resolveChild(hook.fn.name);
|
|
3030
|
+
fnLiteral += `c.response = be
|
|
3022
3031
|
`, returning2 ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i2}](c)
|
|
3023
3032
|
` : `af=e.afterHandle[${i2}](c)
|
|
3024
3033
|
`, fnLiteral += `if(af!==undefined) c.response=be=af
|
|
3025
3034
|
`) : fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i2}](c, be)
|
|
3026
3035
|
` : `e.afterHandle[${i2}](c, be)
|
|
3027
3036
|
`, endUnit2("af");
|
|
3037
|
+
}
|
|
3038
|
+
reporter2.resolve();
|
|
3028
3039
|
}
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
if (hooks.mapResponse?.length) {
|
|
3036
|
-
fnLiteral += `c.response=be
|
|
3040
|
+
validator.response && (fnLiteral += validation.response("be"));
|
|
3041
|
+
let mapResponseReporter = report("mapResponse", {
|
|
3042
|
+
total: hooks.mapResponse?.length
|
|
3043
|
+
});
|
|
3044
|
+
if (hooks.mapResponse?.length) {
|
|
3045
|
+
fnLiteral += `c.response=be
|
|
3037
3046
|
`;
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3047
|
+
for (let i2 = 0; i2 < hooks.mapResponse.length; i2++) {
|
|
3048
|
+
let mapResponse2 = hooks.mapResponse[i2], endUnit2 = mapResponseReporter.resolveChild(
|
|
3049
|
+
mapResponse2.fn.name
|
|
3050
|
+
);
|
|
3051
|
+
fnLiteral += `if(mr===undefined){mr=${isAsyncName(mapResponse2) ? "await " : ""}e.mapResponse[${i2}](c)
|
|
3043
3052
|
if(mr!==undefined)be=c.response=mr}`, endUnit2();
|
|
3053
|
+
}
|
|
3044
3054
|
}
|
|
3045
|
-
|
|
3046
|
-
mapResponseReporter.resolve(), fnLiteral += encodeCookie(), fnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${mapResponseContext})}
|
|
3055
|
+
mapResponseReporter.resolve(), fnLiteral += encodeCookie(), fnLiteral += `return mapEarlyResponse(${saveResponse}be,c.set${mapResponseContext})}
|
|
3047
3056
|
`;
|
|
3057
|
+
}
|
|
3048
3058
|
}
|
|
3049
|
-
}
|
|
3050
3059
|
reporter.resolve();
|
|
3051
3060
|
}
|
|
3052
|
-
if (hooks.afterHandle?.length) {
|
|
3061
|
+
if (hooks.afterHandle?.length || hasTrace) {
|
|
3053
3062
|
let handleReporter = report("handle", {
|
|
3054
3063
|
name: isHandleFn ? handler.name : void 0
|
|
3055
3064
|
});
|
|
3056
|
-
hooks.afterHandle
|
|
3065
|
+
hooks.afterHandle?.length ? fnLiteral += isAsyncHandler ? `let r=c.response=await ${handle}
|
|
3057
3066
|
` : `let r=c.response=${handle}
|
|
3058
3067
|
` : fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
3059
3068
|
` : `let r=${handle}
|
|
3060
3069
|
`, handleReporter.resolve();
|
|
3061
3070
|
let reporter = report("afterHandle", {
|
|
3062
|
-
total: hooks.afterHandle
|
|
3071
|
+
total: hooks.afterHandle?.length
|
|
3063
3072
|
});
|
|
3064
|
-
|
|
3065
|
-
let
|
|
3066
|
-
|
|
3073
|
+
if (hooks.afterHandle?.length)
|
|
3074
|
+
for (let i = 0; i < hooks.afterHandle.length; i++) {
|
|
3075
|
+
let hook = hooks.afterHandle[i], returning = hasReturn(hook), endUnit = reporter.resolveChild(hook.fn.name);
|
|
3076
|
+
returning ? (fnLiteral += isAsync(hook.fn) ? `af=await e.afterHandle[${i}](c)
|
|
3067
3077
|
` : `af=e.afterHandle[${i}](c)
|
|
3068
3078
|
`, endUnit("af"), validator.response ? (fnLiteral += "if(af!==undefined){", reporter.resolve(), fnLiteral += validation.response("af"), fnLiteral += "c.response=af}") : (fnLiteral += "if(af!==undefined){", reporter.resolve(), fnLiteral += "c.response=af}")) : (fnLiteral += isAsync(hook.fn) ? `await e.afterHandle[${i}](c)
|
|
3069
3079
|
` : `e.afterHandle[${i}](c)
|
|
3070
3080
|
`, endUnit());
|
|
3071
|
-
|
|
3072
|
-
reporter.resolve(), fnLiteral += `r=c.response
|
|
3073
|
-
|
|
3081
|
+
}
|
|
3082
|
+
reporter.resolve(), hooks.afterHandle?.length && (fnLiteral += `r=c.response
|
|
3083
|
+
`), validator.response && (fnLiteral += validation.response()), fnLiteral += encodeCookie();
|
|
3074
3084
|
let mapResponseReporter = report("mapResponse", {
|
|
3075
3085
|
total: hooks.mapResponse?.length
|
|
3076
3086
|
});
|
|
@@ -3088,7 +3098,7 @@ if(mr!==undefined)r=c.response=mr
|
|
|
3088
3098
|
let handleReporter = report("handle", {
|
|
3089
3099
|
name: isHandleFn ? handler.name : void 0
|
|
3090
3100
|
});
|
|
3091
|
-
if (validator.response || hooks.mapResponse?.length) {
|
|
3101
|
+
if (validator.response || hooks.mapResponse?.length || hasTrace) {
|
|
3092
3102
|
fnLiteral += isAsyncHandler ? `let r=await ${handle}
|
|
3093
3103
|
` : `let r=${handle}
|
|
3094
3104
|
`, handleReporter.resolve(), validator.response && (fnLiteral += validation.response());
|
|
@@ -3408,22 +3418,29 @@ map: switch(p){
|
|
|
3408
3418
|
fnLiteral += word;
|
|
3409
3419
|
}
|
|
3410
3420
|
}), afterResponse = () => {
|
|
3411
|
-
if (!hooks.afterResponse?.length) return "";
|
|
3412
|
-
let afterResponse2 = "", prefix = hooks.afterResponse
|
|
3421
|
+
if (!hooks.afterResponse?.length && !hasTrace) return "";
|
|
3422
|
+
let afterResponse2 = "", prefix = hooks.afterResponse?.some(isAsync) ? "async" : "";
|
|
3413
3423
|
afterResponse2 += `
|
|
3414
3424
|
setImmediate(${prefix}()=>{`;
|
|
3415
|
-
let reporter =
|
|
3425
|
+
let reporter = createReport({
|
|
3426
|
+
context: "context",
|
|
3427
|
+
trace: hooks.trace,
|
|
3428
|
+
addFn: (word) => {
|
|
3429
|
+
afterResponse2 += word;
|
|
3430
|
+
}
|
|
3431
|
+
})("afterResponse", {
|
|
3416
3432
|
total: hooks.afterResponse?.length,
|
|
3417
3433
|
name: "context"
|
|
3418
3434
|
});
|
|
3419
|
-
|
|
3420
|
-
let
|
|
3421
|
-
|
|
3435
|
+
if (hooks.afterResponse?.length && hooks.afterResponse)
|
|
3436
|
+
for (let i = 0; i < hooks.afterResponse.length; i++) {
|
|
3437
|
+
let fn = hooks.afterResponse[i].fn, endUnit = reporter.resolveChild(fn.name);
|
|
3438
|
+
afterResponse2 += `
|
|
3422
3439
|
${isAsyncName(fn) ? "await " : ""}afterResponse[${i}](context)
|
|
3423
3440
|
`, endUnit();
|
|
3424
|
-
|
|
3425
|
-
return afterResponse2 += `})
|
|
3426
|
-
`,
|
|
3441
|
+
}
|
|
3442
|
+
return reporter.resolve(), afterResponse2 += `})
|
|
3443
|
+
`, afterResponse2;
|
|
3427
3444
|
};
|
|
3428
3445
|
fnLiteral += `const set=context.set
|
|
3429
3446
|
let _r
|
|
@@ -3431,7 +3448,7 @@ if(!context.code)context.code=error.code??error[ERROR_CODE]
|
|
|
3431
3448
|
if(!(context.error instanceof Error))context.error=error
|
|
3432
3449
|
if(error instanceof ElysiaCustomStatusResponse){set.status=error.status=error.code
|
|
3433
3450
|
error.message=error.response}`, adapter.declare && (fnLiteral += adapter.declare);
|
|
3434
|
-
let saveResponse = hasTrace || hooks.afterResponse?.length
|
|
3451
|
+
let saveResponse = hasTrace || hooks.afterResponse?.length ? "context.response = " : "";
|
|
3435
3452
|
if (app.event.error)
|
|
3436
3453
|
for (let i = 0; i < app.event.error.length; i++) {
|
|
3437
3454
|
let handler = app.event.error[i], response = `${isAsync(handler) ? "await " : ""}onError[${i}](context)
|