elysia 2.0.0-exp.33 → 2.0.0-exp.34

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.
@@ -165,6 +165,8 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
165
165
  const traceHandlers = hook?.trace ?? void 0;
166
166
  const hasTrace = !!traceHandlers?.length;
167
167
  const traceCount = hasTrace ? traceHandlers.length : 0;
168
+ const hasLifecycleHook = parseLength > 0 || !!hook?.transform?.length || hasBeforeHandle || hasAfterHandle || hasMapResponse || hasErrorHook || hasAfterResponse;
169
+ const abortCheck = hasLifecycleHook ? `if(aborted)return emp.clone()\n` : "";
168
170
  const tracePhases = hasTrace ? require_trace.unionTracePhases(traceHandlers) : /* @__PURE__ */ new Set();
169
171
  const phaseOn = (phase) => hasTrace && (tracePhases === null || tracePhases.has(phase));
170
172
  const hasAnyPhase = hasTrace && (tracePhases === null || tracePhases.size > 0);
@@ -217,6 +219,10 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
217
219
  const syncAfterResponse = hasAfterResponse && !isAsync && !hasTrace && !hasErrorHook;
218
220
  const callHandler = isHandleFunction ? callHandlerSyncOnAsync ? `_r=h(c)\nif(_r instanceof Promise)_r=await _r\n` : `_r=${isAsync ? "await " : ""}h(c)\n` : isStaticResponse ? `_r=cr(h)\n` : isPromiseHandler ? `_r=h.then(cr)\n` : `_r=h\n`;
219
221
  let code = `${isAsync ? "async " : ""}function route(c){\n`;
222
+ if (hasLifecycleHook) {
223
+ link(require_handler_utils.emptyResponse, "emp");
224
+ code += "let aborted=c.request.signal.aborted\nif(!aborted)c.request.signal.addEventListener('abort',()=>{aborted=true},{once:true})\n" + abortCheck;
225
+ }
220
226
  if ((hasAfterResponse || hasTrace) && !syncAfterResponse) code += "let _stl\n";
221
227
  if (asyncCookieSign) code += "let _sg\n";
222
228
  if (hasTrace) {
@@ -265,6 +271,7 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
265
271
  link(require_error.ParseError, "pe");
266
272
  code += "try{\n" + parseCode + "}catch(e){throw new pe(e)}\n";
267
273
  if (hasTrace) code += endTrace("parse");
274
+ if (hasLifecycleHook) code += abortCheck;
268
275
  } else if (hasTrace) code += beginTrace("parse", 0) + endTrace("parse");
269
276
  if (hook?.transform?.length || hasTrace) {
270
277
  const transformLen = hook?.transform?.length ?? 0;
@@ -272,9 +279,10 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
272
279
  if (transformLen) {
273
280
  link(hook.transform, "tf");
274
281
  if (isAsync) code += "let _tf\n";
275
- code += require_compile_handler_utils.mapTransform(hook.transform, [isAsync, buildReport("transform")]);
282
+ code += require_compile_handler_utils.mapTransform(hook.transform, [isAsync, buildReport("transform")], "aborted");
276
283
  }
277
284
  code += endTrace("transform");
285
+ if (transformLen) code += abortCheck;
278
286
  }
279
287
  if (vali?.body) {
280
288
  link(vali, "va");
@@ -344,9 +352,10 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
344
352
  if (hasBeforeHandle) {
345
353
  link(hook.beforeHandle, "bf");
346
354
  const deriveEntries = hook["~deriveEntries"];
347
- code += require_compile_handler_utils.mapBeforeHandle(hook.beforeHandle, deriveEntries?.length ? new Set(deriveEntries) : void 0, link, isAsync, buildReport("beforeHandle"));
355
+ code += require_compile_handler_utils.mapBeforeHandle(hook.beforeHandle, deriveEntries?.length ? new Set(deriveEntries) : void 0, link, isAsync, buildReport("beforeHandle"), "aborted");
348
356
  }
349
357
  code += endTrace("beforeHandle");
358
+ if (hasBeforeHandle) code += abortCheck;
350
359
  }
351
360
  if (hasAfterResponse || traceHandleOn) link(require_adapter_utils.tee, "tee");
352
361
  const teeConsumers = (hasAfterResponse ? 1 : 0) + (traceHandleOn ? 1 : 0);
@@ -367,6 +376,7 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
367
376
  code += `}\n`;
368
377
  } else if (hasBeforeHandle) code += `if(_r===undefined){\n${callHandler}${teeBlock}}\n`;
369
378
  else code += callHandler + teeBlock;
379
+ if (hasLifecycleHook) code += abortCheck;
370
380
  if (syncAfterResponse) {
371
381
  link(require_handler_utils.forwardError, "fe");
372
382
  factoryHelpers += `function _fin(c,_r){
@@ -386,18 +396,20 @@ const _s=tee(_r,${teeCount})\nreturn _fin2(c,_s[0],_s[1])\n}\nreturn _fin2(c,_r,
386
396
  code += beginTrace("afterHandle", afLen);
387
397
  if (hasAfterHandle) {
388
398
  link(hook.afterHandle, "af");
389
- code += require_compile_handler_utils.mapAfterHandle(hook.afterHandle, isAsync, buildReport("afterHandle"));
399
+ code += require_compile_handler_utils.mapAfterHandle(hook.afterHandle, isAsync, buildReport("afterHandle"), "aborted");
390
400
  }
391
401
  code += endTrace("afterHandle");
402
+ if (hasAfterHandle) code += abortCheck;
392
403
  }
393
404
  if (hasMapResponse || hasTrace) {
394
405
  const mrLen = hook?.mapResponse?.length ?? 0;
395
406
  code += beginTrace("mapResponse", mrLen);
396
407
  if (hasMapResponse) {
397
408
  link(hook.mapResponse, "mr");
398
- code += require_compile_handler_utils.mapMapResponse(hook.mapResponse, isAsync, buildReport("mapResponse"));
409
+ code += require_compile_handler_utils.mapMapResponse(hook.mapResponse, isAsync, buildReport("mapResponse"), "aborted");
399
410
  }
400
411
  code += endTrace("mapResponse");
412
+ if (hasMapResponse) code += abortCheck;
401
413
  }
402
414
  if (hasResponseValidator) {
403
415
  link(vali, "va");
@@ -406,17 +418,18 @@ const _s=tee(_r,${teeCount})\nreturn _fin2(c,_s[0],_s[1])\n}\nreturn _fin2(c,_r,
406
418
  code += `if(_r instanceof es){
407
419
  const _vr=va.response[_r.code]
408
420
  if(_vr)_r.response=${awaitStr}_vr.EncodeFrom(_r.response,'response')\n}else if(!(_r instanceof Response)&&!(_r instanceof ReadableStream)&&typeof _r?.next!=='function'){\nconst _vr=va.response[c.set.status??200]\nif(_vr)_r=${awaitStr}_vr.EncodeFrom(_r,'response')\n}\n`;
421
+ if (hasLifecycleHook) code += abortCheck;
409
422
  }
410
423
  code += schedule;
411
424
  code += signPrefix;
412
425
  const finalMap = hasSet ? `${map}(_r,c.set,c.request)` : `${map}(_r,c.request)`;
413
- if (syncErrorHook) code += `if(_r instanceof Promise)return ${finalMap}.catch((_e)=>_ce(_e,c))\n`;
426
+ if (syncErrorHook) code += `if(_r instanceof Promise)return ${finalMap}.catch((_e)=>_ce(_e,c,aborted))\n`;
414
427
  code += `return ${finalMap}\n`;
415
428
  }
416
429
  } else if (isHandleFunction) {
417
430
  if (!isAsync) link(require_handler_utils.forwardError, "fe");
418
431
  const mapArgs = hasSet ? "c.set,c.request" : "c.request";
419
- code += (callHandlerSyncOnAsync ? `let _r=h(c)\nif(_r instanceof Promise)_r=await _r\n` : `let _r=${isAsync ? "await " : ""}h(c)\n`) + `if(_r instanceof Error)throw _r\n` + (isAsync ? `return ${map}(_r,${mapArgs})\n` : syncErrorHook ? `if(_r instanceof Promise)return ${map}(_r.then(fe),${mapArgs}).catch((_e)=>_ce(_e,c))\nreturn ${map}(_r,${mapArgs})\n` : `if(_r instanceof Promise)_r=_r.then(fe)\nreturn ${map}(_r,${mapArgs})\n`);
432
+ code += (callHandlerSyncOnAsync ? `let _r=h(c)\nif(_r instanceof Promise)_r=await _r\n` : `let _r=${isAsync ? "await " : ""}h(c)\n`) + abortCheck + `if(_r instanceof Error)throw _r\n` + (isAsync ? `return ${map}(_r,${mapArgs})\n` : syncErrorHook ? `if(_r instanceof Promise)return ${map}(_r.then(fe),${mapArgs}).catch((_e)=>_ce(_e,c,aborted))\nreturn ${map}(_r,${mapArgs})\n` : `if(_r instanceof Promise)_r=_r.then(fe)\nreturn ${map}(_r,${mapArgs})\n`);
420
433
  } else code += `return ${mapReturn}`;
421
434
  if (hasErrorHook || hasTrace) {
422
435
  let body = "";
@@ -438,9 +451,9 @@ let _r${hasMapResponse ? ",tmp" : ""}\n` + require_compile_handler_utils.mapErro
438
451
  map,
439
452
  link,
440
453
  res.map,
441
- (hasMapResponse ? `c.responseValue=_r\n` + require_compile_handler_utils.mapMapResponse(hook.mapResponse, isAsync, void 0) : "") + endTrace("error") + schedule,
454
+ (hasMapResponse ? `c.responseValue=_r\n` + require_compile_handler_utils.mapMapResponse(hook.mapResponse, isAsync, void 0, "aborted") : "") + endTrace("error") + abortCheck + schedule,
442
455
  signPrefix
443
- ]) + endTrace("error") + schedule + `if(typeof e?.toResponse==='function')try{
456
+ ], "aborted") + endTrace("error") + abortCheck + schedule + `if(typeof e?.toResponse==='function')try{
444
457
  const _er=e.toResponse()
445
458
  if(_er instanceof Promise)return _er.then(${asyncCookieSign ? "async " : ""}(_v)=>{if(_v instanceof Response){${signPrefix}return ${map}(_v,c.set,c.request)}return _efb(e,c)},()=>_efb(e,c))\nif(_er instanceof Response){${signPrefix}return ${map}(_er,c.set,c.request)}\n}catch{}\nreturn _efb(e,c)\n`;
446
459
  } else {
@@ -448,8 +461,8 @@ if(_er instanceof Promise)return _er.then(${asyncCookieSign ? "async " : ""}(_v)
448
461
  body += `throw e\n`;
449
462
  }
450
463
  if (syncErrorHook) {
451
- factoryHelpers += `function _ce(e,c){\n${body}}\n`;
452
- code += `}catch(e){return _ce(e,c)}\n`;
464
+ factoryHelpers += `function _ce(e,c,aborted){\n${body}}\n`;
465
+ code += `}catch(e){return _ce(e,c,aborted)}\n`;
453
466
  } else code += `}catch(e){\n${body}}\n`;
454
467
  }
455
468
  code += "}";
@@ -8,7 +8,7 @@ import { Capture } from "../aot.mjs";
8
8
  import { compileCookieConfig } from "../../cookie/config.mjs";
9
9
  import { buildCookieJar, hasSyncHmac, parseCookieRaw, parseCookieRawSigned, parseCookieRawSync, signCookieValues, signCookieValuesSync } from "../../cookie/utils.mjs";
10
10
  import { isAsyncFunction, isAsyncLifecycle, mayReturnPromise } from "../utils.mjs";
11
- import { forwardError } from "../../handler/utils.mjs";
11
+ import { emptyResponse, forwardError } from "../../handler/utils.mjs";
12
12
  import { cloneResponse, getQueryParseChannels, hasRequestBody, mapAfterHandle, mapAfterResponse, mapBeforeHandle, mapError, mapMapResponse, mapTransform } from "./utils.mjs";
13
13
  import { sucrose } from "../../sucrose.mjs";
14
14
  import { createTracer, unionTracePhases } from "../../trace.mjs";
@@ -164,6 +164,8 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
164
164
  const traceHandlers = hook?.trace ?? void 0;
165
165
  const hasTrace = !!traceHandlers?.length;
166
166
  const traceCount = hasTrace ? traceHandlers.length : 0;
167
+ const hasLifecycleHook = parseLength > 0 || !!hook?.transform?.length || hasBeforeHandle || hasAfterHandle || hasMapResponse || hasErrorHook || hasAfterResponse;
168
+ const abortCheck = hasLifecycleHook ? `if(aborted)return emp.clone()\n` : "";
167
169
  const tracePhases = hasTrace ? unionTracePhases(traceHandlers) : /* @__PURE__ */ new Set();
168
170
  const phaseOn = (phase) => hasTrace && (tracePhases === null || tracePhases.has(phase));
169
171
  const hasAnyPhase = hasTrace && (tracePhases === null || tracePhases.size > 0);
@@ -216,6 +218,10 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
216
218
  const syncAfterResponse = hasAfterResponse && !isAsync && !hasTrace && !hasErrorHook;
217
219
  const callHandler = isHandleFunction ? callHandlerSyncOnAsync ? `_r=h(c)\nif(_r instanceof Promise)_r=await _r\n` : `_r=${isAsync ? "await " : ""}h(c)\n` : isStaticResponse ? `_r=cr(h)\n` : isPromiseHandler ? `_r=h.then(cr)\n` : `_r=h\n`;
218
220
  let code = `${isAsync ? "async " : ""}function route(c){\n`;
221
+ if (hasLifecycleHook) {
222
+ link(emptyResponse, "emp");
223
+ code += "let aborted=c.request.signal.aborted\nif(!aborted)c.request.signal.addEventListener('abort',()=>{aborted=true},{once:true})\n" + abortCheck;
224
+ }
219
225
  if ((hasAfterResponse || hasTrace) && !syncAfterResponse) code += "let _stl\n";
220
226
  if (asyncCookieSign) code += "let _sg\n";
221
227
  if (hasTrace) {
@@ -264,6 +270,7 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
264
270
  link(ParseError, "pe");
265
271
  code += "try{\n" + parseCode + "}catch(e){throw new pe(e)}\n";
266
272
  if (hasTrace) code += endTrace("parse");
273
+ if (hasLifecycleHook) code += abortCheck;
267
274
  } else if (hasTrace) code += beginTrace("parse", 0) + endTrace("parse");
268
275
  if (hook?.transform?.length || hasTrace) {
269
276
  const transformLen = hook?.transform?.length ?? 0;
@@ -271,9 +278,10 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
271
278
  if (transformLen) {
272
279
  link(hook.transform, "tf");
273
280
  if (isAsync) code += "let _tf\n";
274
- code += mapTransform(hook.transform, [isAsync, buildReport("transform")]);
281
+ code += mapTransform(hook.transform, [isAsync, buildReport("transform")], "aborted");
275
282
  }
276
283
  code += endTrace("transform");
284
+ if (transformLen) code += abortCheck;
277
285
  }
278
286
  if (vali?.body) {
279
287
  link(vali, "va");
@@ -343,9 +351,10 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
343
351
  if (hasBeforeHandle) {
344
352
  link(hook.beforeHandle, "bf");
345
353
  const deriveEntries = hook["~deriveEntries"];
346
- code += mapBeforeHandle(hook.beforeHandle, deriveEntries?.length ? new Set(deriveEntries) : void 0, link, isAsync, buildReport("beforeHandle"));
354
+ code += mapBeforeHandle(hook.beforeHandle, deriveEntries?.length ? new Set(deriveEntries) : void 0, link, isAsync, buildReport("beforeHandle"), "aborted");
347
355
  }
348
356
  code += endTrace("beforeHandle");
357
+ if (hasBeforeHandle) code += abortCheck;
349
358
  }
350
359
  if (hasAfterResponse || traceHandleOn) link(tee, "tee");
351
360
  const teeConsumers = (hasAfterResponse ? 1 : 0) + (traceHandleOn ? 1 : 0);
@@ -366,6 +375,7 @@ function compileHandlerJit({ method, path, handler, root, hook, adapter, buildVa
366
375
  code += `}\n`;
367
376
  } else if (hasBeforeHandle) code += `if(_r===undefined){\n${callHandler}${teeBlock}}\n`;
368
377
  else code += callHandler + teeBlock;
378
+ if (hasLifecycleHook) code += abortCheck;
369
379
  if (syncAfterResponse) {
370
380
  link(forwardError, "fe");
371
381
  factoryHelpers += `function _fin(c,_r){
@@ -385,18 +395,20 @@ const _s=tee(_r,${teeCount})\nreturn _fin2(c,_s[0],_s[1])\n}\nreturn _fin2(c,_r,
385
395
  code += beginTrace("afterHandle", afLen);
386
396
  if (hasAfterHandle) {
387
397
  link(hook.afterHandle, "af");
388
- code += mapAfterHandle(hook.afterHandle, isAsync, buildReport("afterHandle"));
398
+ code += mapAfterHandle(hook.afterHandle, isAsync, buildReport("afterHandle"), "aborted");
389
399
  }
390
400
  code += endTrace("afterHandle");
401
+ if (hasAfterHandle) code += abortCheck;
391
402
  }
392
403
  if (hasMapResponse || hasTrace) {
393
404
  const mrLen = hook?.mapResponse?.length ?? 0;
394
405
  code += beginTrace("mapResponse", mrLen);
395
406
  if (hasMapResponse) {
396
407
  link(hook.mapResponse, "mr");
397
- code += mapMapResponse(hook.mapResponse, isAsync, buildReport("mapResponse"));
408
+ code += mapMapResponse(hook.mapResponse, isAsync, buildReport("mapResponse"), "aborted");
398
409
  }
399
410
  code += endTrace("mapResponse");
411
+ if (hasMapResponse) code += abortCheck;
400
412
  }
401
413
  if (hasResponseValidator) {
402
414
  link(vali, "va");
@@ -405,17 +417,18 @@ const _s=tee(_r,${teeCount})\nreturn _fin2(c,_s[0],_s[1])\n}\nreturn _fin2(c,_r,
405
417
  code += `if(_r instanceof es){
406
418
  const _vr=va.response[_r.code]
407
419
  if(_vr)_r.response=${awaitStr}_vr.EncodeFrom(_r.response,'response')\n}else if(!(_r instanceof Response)&&!(_r instanceof ReadableStream)&&typeof _r?.next!=='function'){\nconst _vr=va.response[c.set.status??200]\nif(_vr)_r=${awaitStr}_vr.EncodeFrom(_r,'response')\n}\n`;
420
+ if (hasLifecycleHook) code += abortCheck;
408
421
  }
409
422
  code += schedule;
410
423
  code += signPrefix;
411
424
  const finalMap = hasSet ? `${map}(_r,c.set,c.request)` : `${map}(_r,c.request)`;
412
- if (syncErrorHook) code += `if(_r instanceof Promise)return ${finalMap}.catch((_e)=>_ce(_e,c))\n`;
425
+ if (syncErrorHook) code += `if(_r instanceof Promise)return ${finalMap}.catch((_e)=>_ce(_e,c,aborted))\n`;
413
426
  code += `return ${finalMap}\n`;
414
427
  }
415
428
  } else if (isHandleFunction) {
416
429
  if (!isAsync) link(forwardError, "fe");
417
430
  const mapArgs = hasSet ? "c.set,c.request" : "c.request";
418
- code += (callHandlerSyncOnAsync ? `let _r=h(c)\nif(_r instanceof Promise)_r=await _r\n` : `let _r=${isAsync ? "await " : ""}h(c)\n`) + `if(_r instanceof Error)throw _r\n` + (isAsync ? `return ${map}(_r,${mapArgs})\n` : syncErrorHook ? `if(_r instanceof Promise)return ${map}(_r.then(fe),${mapArgs}).catch((_e)=>_ce(_e,c))\nreturn ${map}(_r,${mapArgs})\n` : `if(_r instanceof Promise)_r=_r.then(fe)\nreturn ${map}(_r,${mapArgs})\n`);
431
+ code += (callHandlerSyncOnAsync ? `let _r=h(c)\nif(_r instanceof Promise)_r=await _r\n` : `let _r=${isAsync ? "await " : ""}h(c)\n`) + abortCheck + `if(_r instanceof Error)throw _r\n` + (isAsync ? `return ${map}(_r,${mapArgs})\n` : syncErrorHook ? `if(_r instanceof Promise)return ${map}(_r.then(fe),${mapArgs}).catch((_e)=>_ce(_e,c,aborted))\nreturn ${map}(_r,${mapArgs})\n` : `if(_r instanceof Promise)_r=_r.then(fe)\nreturn ${map}(_r,${mapArgs})\n`);
419
432
  } else code += `return ${mapReturn}`;
420
433
  if (hasErrorHook || hasTrace) {
421
434
  let body = "";
@@ -437,9 +450,9 @@ let _r${hasMapResponse ? ",tmp" : ""}\n` + mapError(hook.error, [
437
450
  map,
438
451
  link,
439
452
  res.map,
440
- (hasMapResponse ? `c.responseValue=_r\n` + mapMapResponse(hook.mapResponse, isAsync, void 0) : "") + endTrace("error") + schedule,
453
+ (hasMapResponse ? `c.responseValue=_r\n` + mapMapResponse(hook.mapResponse, isAsync, void 0, "aborted") : "") + endTrace("error") + abortCheck + schedule,
441
454
  signPrefix
442
- ]) + endTrace("error") + schedule + `if(typeof e?.toResponse==='function')try{
455
+ ], "aborted") + endTrace("error") + abortCheck + schedule + `if(typeof e?.toResponse==='function')try{
443
456
  const _er=e.toResponse()
444
457
  if(_er instanceof Promise)return _er.then(${asyncCookieSign ? "async " : ""}(_v)=>{if(_v instanceof Response){${signPrefix}return ${map}(_v,c.set,c.request)}return _efb(e,c)},()=>_efb(e,c))\nif(_er instanceof Response){${signPrefix}return ${map}(_er,c.set,c.request)}\n}catch{}\nreturn _efb(e,c)\n`;
445
458
  } else {
@@ -447,8 +460,8 @@ if(_er instanceof Promise)return _er.then(${asyncCookieSign ? "async " : ""}(_v)
447
460
  body += `throw e\n`;
448
461
  }
449
462
  if (syncErrorHook) {
450
- factoryHelpers += `function _ce(e,c){\n${body}}\n`;
451
- code += `}catch(e){return _ce(e,c)}\n`;
463
+ factoryHelpers += `function _ce(e,c,aborted){\n${body}}\n`;
464
+ code += `}catch(e){return _ce(e,c,aborted)}\n`;
452
465
  } else code += `}catch(e){\n${body}}\n`;
453
466
  }
454
467
  code += "}";
@@ -25,6 +25,7 @@ const HANDLER_PARAMS = {
25
25
  pe: () => require_error.ParseError,
26
26
  es: () => require_error.ElysiaStatus,
27
27
  ise: () => require_error.internalServerErrorResponse,
28
+ emp: () => require_handler_utils.emptyResponse,
28
29
  isprod: () => require_error.isProduction,
29
30
  verr: () => require_error.ValidationError,
30
31
  tee: () => require_adapter_utils.tee,
@@ -3,7 +3,7 @@ import { ElysiaStatus, ParseError, ValidationError, internalServerErrorResponse,
3
3
  import { tee } from "../../adapter/utils.mjs";
4
4
  import { parseQueryFromURL } from "../../parse-query.mjs";
5
5
  import { buildCookieJar, parseCookieRaw, parseCookieRawSigned, parseCookieRawSync, signCookieValues, signCookieValuesSync } from "../../cookie/utils.mjs";
6
- import { forwardError } from "../../handler/utils.mjs";
6
+ import { emptyResponse, forwardError } from "../../handler/utils.mjs";
7
7
  import { cloneResponse, getQueryParseChannels, hasRequestBody } from "./utils.mjs";
8
8
 
9
9
  //#region src/compile/handler/params.ts
@@ -24,6 +24,7 @@ const HANDLER_PARAMS = {
24
24
  pe: () => ParseError,
25
25
  es: () => ElysiaStatus,
26
26
  ise: () => internalServerErrorResponse,
27
+ emp: () => emptyResponse,
27
28
  isprod: () => isProduction,
28
29
  verr: () => ValidationError,
29
30
  tee: () => tee,
@@ -1,5 +1,7 @@
1
1
  import { AfterResponseHandler, AppHook, ErrorHandler, MaybeArray, TransformHandler } from "../../types.js";
2
2
  import { Context } from "../../context.js";
3
+ import { emptyResponse } from "../../handler/utils.js";
4
+
3
5
  //#region src/compile/handler/utils.d.ts
4
6
  type Link = (v: unknown, key: string) => void;
5
7
  interface TraceReporter {
@@ -10,17 +12,17 @@ interface TraceReporter {
10
12
  }
11
13
  declare function cloneResponse(r: unknown): unknown;
12
14
  declare function hasRequestBody(request: Request): boolean;
13
- declare const mapTransform: (event: MaybeArray<TransformHandler<any, any, undefined, "local">>, rest?: [isAsync: boolean, report?: TraceReporter | undefined] | undefined) => string;
15
+ declare const mapTransform: (event: MaybeArray<TransformHandler<any, any, undefined, "local">>, rest?: [isAsync: boolean, report?: TraceReporter | undefined] | undefined, abortGuard?: string) => string;
14
16
  declare function extractDeriveKeys(fn: Function): string[] | null;
15
- declare function mapBeforeHandle(_hooks: AppHook['beforeHandle'] | AppHook['beforeHandle'][0], derive: Set<Function> | undefined, link: Link, isAsync: boolean, report?: TraceReporter): string;
16
- declare const mapAfterHandle: (_hooks: AppHook["afterHandle"] | AppHook["afterHandle"][0], isAsync: boolean, report?: TraceReporter) => string;
17
- declare const mapMapResponse: (_hooks: AppHook["mapResponse"] | AppHook["mapResponse"][0], isAsync: boolean, report?: TraceReporter) => string;
18
- declare const mapAfterResponse: (event: MaybeArray<AfterResponseHandler<any, any, undefined, "local">>, rest?: [report?: TraceReporter | undefined] | undefined) => string;
19
- declare const mapError: (event: MaybeArray<ErrorHandler<any, any, any>>, rest?: [map: string, link: Link, mapResponse: (response: unknown, set: Context["set"], ...params: unknown[]) => unknown, schedule: string, sign: string] | undefined) => string;
17
+ declare function mapBeforeHandle(_hooks: AppHook['beforeHandle'] | AppHook['beforeHandle'][0], derive: Set<Function> | undefined, link: Link, isAsync: boolean, report?: TraceReporter, abortGuard?: string): string;
18
+ declare const mapAfterHandle: (_hooks: AppHook["afterHandle"] | AppHook["afterHandle"][0], isAsync: boolean, report?: TraceReporter, abortGuard?: string) => string;
19
+ declare const mapMapResponse: (_hooks: AppHook["mapResponse"] | AppHook["mapResponse"][0], isAsync: boolean, report?: TraceReporter, abortGuard?: string) => string;
20
+ declare const mapAfterResponse: (event: MaybeArray<AfterResponseHandler<any, any, undefined, "local">>, rest?: [report?: TraceReporter | undefined] | undefined, abortGuard?: string) => string;
21
+ declare const mapError: (event: MaybeArray<ErrorHandler<any, any, any>>, rest?: [map: string, link: Link, mapResponse: (response: unknown, set: Context["set"], ...params: unknown[]) => unknown, schedule: string, sign: string] | undefined, abortGuard?: string) => string;
20
22
  interface QueryWalkState {
21
23
  array: Record<string, 1> | undefined;
22
24
  object: Record<string, 1> | undefined;
23
25
  }
24
26
  declare function getQueryParseChannels(querySchema: any): QueryWalkState | undefined;
25
27
  //#endregion
26
- export { Link, TraceReporter, cloneResponse, extractDeriveKeys, getQueryParseChannels, hasRequestBody, mapAfterHandle, mapAfterResponse, mapBeforeHandle, mapError, mapMapResponse, mapTransform };
28
+ export { Link, TraceReporter, cloneResponse, emptyResponse, extractDeriveKeys, getQueryParseChannels, hasRequestBody, mapAfterHandle, mapAfterResponse, mapBeforeHandle, mapError, mapMapResponse, mapTransform };
@@ -3,6 +3,7 @@ const require_type_constants = require('../../type/constants.js');
3
3
  const require_adapter_skip_clone = require('../../adapter/skip-clone.js');
4
4
  const require_error = require('../../error.js');
5
5
  const require_compile_utils = require('../utils.js');
6
+ const require_handler_utils = require('../../handler/utils.js');
6
7
  const require_compile_lexer = require('../lexer.js');
7
8
 
8
9
  //#region src/compile/handler/utils.ts
@@ -242,7 +243,7 @@ function skipValue(src, i) {
242
243
  }
243
244
  return -1;
244
245
  }
245
- function mapBeforeHandle(_hooks, derive, link, isAsync, report) {
246
+ function mapBeforeHandle(_hooks, derive, link, isAsync, report, abortGuard) {
246
247
  const hooks = toArray(_hooks);
247
248
  let code = "";
248
249
  let depth = 0;
@@ -250,7 +251,7 @@ function mapBeforeHandle(_hooks, derive, link, isAsync, report) {
250
251
  for (let i = 0; i < hooks.length; i++) {
251
252
  const fn = hooks[i];
252
253
  if (i > 0) {
253
- code += `if(_r===undefined){\n`;
254
+ code += `if(${abortGuard ? `!${abortGuard}&&` : ""}_r===undefined){\n`;
254
255
  depth++;
255
256
  }
256
257
  const t = trace(report, fn);
@@ -270,13 +271,13 @@ else if(tmp){${merge};tmp=undefined}\n`;
270
271
  if (needsEs) link(require_error.ElysiaStatus, "es");
271
272
  return code;
272
273
  }
273
- function mapChainHook(hooks, prefix, isAsync, report) {
274
+ function mapChainHook(hooks, prefix, isAsync, report, abortGuard) {
274
275
  let code = "";
275
276
  let depth = 0;
276
277
  for (let i = 0; i < hooks.length; i++) {
277
278
  const fn = hooks[i];
278
279
  if (i > 0) {
279
- code += `if(tmp===undefined){\n`;
280
+ code += `if(${abortGuard ? `!${abortGuard}&&` : ""}tmp===undefined){\n`;
280
281
  depth++;
281
282
  }
282
283
  const t = trace(report, fn);
@@ -289,8 +290,8 @@ function mapChainHook(hooks, prefix, isAsync, report) {
289
290
  code += `if(tmp!==undefined)_r=c.responseValue=tmp\n`;
290
291
  return code;
291
292
  }
292
- const mapAfterHandle = (_hooks, isAsync, report) => mapChainHook(toArray(_hooks), "af", isAsync, report);
293
- const mapMapResponse = (_hooks, isAsync, report) => mapChainHook(toArray(_hooks), "mr", isAsync, report);
293
+ const mapAfterHandle = (_hooks, isAsync, report, abortGuard) => mapChainHook(toArray(_hooks), "af", isAsync, report, abortGuard);
294
+ const mapMapResponse = (_hooks, isAsync, report, abortGuard) => mapChainHook(toArray(_hooks), "mr", isAsync, report, abortGuard);
294
295
  const mapAfterResponse = /* @__PURE__ */ map((i, fn, [report]) => {
295
296
  const t = trace(report, fn);
296
297
  return `try{` + t.begin + `${Await(fn)}ar${at(i)}(c)\n` + t.end() + `}catch(_e){` + t.end("_e") + `}\n`;
@@ -300,10 +301,18 @@ const mapError = /* @__PURE__ */ map((i, fn, [map, link, mapResponse, schedule,
300
301
  return `_r=${Await(fn)}er${at(i)}(c)\nif(_r!==undefined){\nif(_r instanceof Response)c.set.status=_r.status\nelse if(c.set.status===undefined||c.set.status===200)c.set.status=500\n` + schedule + sign + `return ${map}(_r,c.set,c.request)\n}\n`;
301
302
  });
302
303
  function map(map) {
303
- return function(event, rest) {
304
+ return function(event, rest, abortGuard) {
304
305
  if (Array.isArray(event)) {
305
306
  let code = "";
306
- for (let i = 0; i < event.length; i++) code += map(i, event[i], rest);
307
+ let depth = 0;
308
+ for (let i = 0; i < event.length; i++) {
309
+ if (i > 0 && abortGuard) {
310
+ code += `if(!${abortGuard}){\n`;
311
+ depth++;
312
+ }
313
+ code += map(i, event[i], rest);
314
+ }
315
+ code += "}".repeat(depth);
307
316
  return code;
308
317
  } else return map(void 0, event, rest);
309
318
  };
@@ -376,6 +385,7 @@ const awaitGuard = (fn, isAsync, target) => isAsync && !require_compile_utils.is
376
385
 
377
386
  //#endregion
378
387
  exports.cloneResponse = cloneResponse;
388
+ exports.emptyResponse = require_handler_utils.emptyResponse;
379
389
  exports.extractDeriveKeys = extractDeriveKeys;
380
390
  exports.getQueryParseChannels = getQueryParseChannels;
381
391
  exports.hasRequestBody = hasRequestBody;
@@ -2,6 +2,7 @@ import { ELYSIA_TYPES } from "../../type/constants.mjs";
2
2
  import { skipClone } from "../../adapter/skip-clone.mjs";
3
3
  import { ElysiaStatus } from "../../error.mjs";
4
4
  import { isAsyncFunction } from "../utils.mjs";
5
+ import { emptyResponse } from "../../handler/utils.mjs";
5
6
  import { isIdentChar, isSpace, skipString } from "../lexer.mjs";
6
7
 
7
8
  //#region src/compile/handler/utils.ts
@@ -241,7 +242,7 @@ function skipValue(src, i) {
241
242
  }
242
243
  return -1;
243
244
  }
244
- function mapBeforeHandle(_hooks, derive, link, isAsync, report) {
245
+ function mapBeforeHandle(_hooks, derive, link, isAsync, report, abortGuard) {
245
246
  const hooks = toArray(_hooks);
246
247
  let code = "";
247
248
  let depth = 0;
@@ -249,7 +250,7 @@ function mapBeforeHandle(_hooks, derive, link, isAsync, report) {
249
250
  for (let i = 0; i < hooks.length; i++) {
250
251
  const fn = hooks[i];
251
252
  if (i > 0) {
252
- code += `if(_r===undefined){\n`;
253
+ code += `if(${abortGuard ? `!${abortGuard}&&` : ""}_r===undefined){\n`;
253
254
  depth++;
254
255
  }
255
256
  const t = trace(report, fn);
@@ -269,13 +270,13 @@ else if(tmp){${merge};tmp=undefined}\n`;
269
270
  if (needsEs) link(ElysiaStatus, "es");
270
271
  return code;
271
272
  }
272
- function mapChainHook(hooks, prefix, isAsync, report) {
273
+ function mapChainHook(hooks, prefix, isAsync, report, abortGuard) {
273
274
  let code = "";
274
275
  let depth = 0;
275
276
  for (let i = 0; i < hooks.length; i++) {
276
277
  const fn = hooks[i];
277
278
  if (i > 0) {
278
- code += `if(tmp===undefined){\n`;
279
+ code += `if(${abortGuard ? `!${abortGuard}&&` : ""}tmp===undefined){\n`;
279
280
  depth++;
280
281
  }
281
282
  const t = trace(report, fn);
@@ -288,8 +289,8 @@ function mapChainHook(hooks, prefix, isAsync, report) {
288
289
  code += `if(tmp!==undefined)_r=c.responseValue=tmp\n`;
289
290
  return code;
290
291
  }
291
- const mapAfterHandle = (_hooks, isAsync, report) => mapChainHook(toArray(_hooks), "af", isAsync, report);
292
- const mapMapResponse = (_hooks, isAsync, report) => mapChainHook(toArray(_hooks), "mr", isAsync, report);
292
+ const mapAfterHandle = (_hooks, isAsync, report, abortGuard) => mapChainHook(toArray(_hooks), "af", isAsync, report, abortGuard);
293
+ const mapMapResponse = (_hooks, isAsync, report, abortGuard) => mapChainHook(toArray(_hooks), "mr", isAsync, report, abortGuard);
293
294
  const mapAfterResponse = /* @__PURE__ */ map((i, fn, [report]) => {
294
295
  const t = trace(report, fn);
295
296
  return `try{` + t.begin + `${Await(fn)}ar${at(i)}(c)\n` + t.end() + `}catch(_e){` + t.end("_e") + `}\n`;
@@ -299,10 +300,18 @@ const mapError = /* @__PURE__ */ map((i, fn, [map, link, mapResponse, schedule,
299
300
  return `_r=${Await(fn)}er${at(i)}(c)\nif(_r!==undefined){\nif(_r instanceof Response)c.set.status=_r.status\nelse if(c.set.status===undefined||c.set.status===200)c.set.status=500\n` + schedule + sign + `return ${map}(_r,c.set,c.request)\n}\n`;
300
301
  });
301
302
  function map(map) {
302
- return function(event, rest) {
303
+ return function(event, rest, abortGuard) {
303
304
  if (Array.isArray(event)) {
304
305
  let code = "";
305
- for (let i = 0; i < event.length; i++) code += map(i, event[i], rest);
306
+ let depth = 0;
307
+ for (let i = 0; i < event.length; i++) {
308
+ if (i > 0 && abortGuard) {
309
+ code += `if(!${abortGuard}){\n`;
310
+ depth++;
311
+ }
312
+ code += map(i, event[i], rest);
313
+ }
314
+ code += "}".repeat(depth);
306
315
  return code;
307
316
  } else return map(void 0, event, rest);
308
317
  };
@@ -374,4 +383,4 @@ const Await = (fn) => isAsyncFunction(fn) ? "await " : "";
374
383
  const awaitGuard = (fn, isAsync, target) => isAsync && !isAsyncFunction(fn) ? `if(${target} instanceof Promise)${target}=await ${target}\n` : "";
375
384
 
376
385
  //#endregion
377
- export { cloneResponse, extractDeriveKeys, getQueryParseChannels, hasRequestBody, mapAfterHandle, mapAfterResponse, mapBeforeHandle, mapError, mapMapResponse, mapTransform };
386
+ export { cloneResponse, emptyResponse, extractDeriveKeys, getQueryParseChannels, hasRequestBody, mapAfterHandle, mapAfterResponse, mapBeforeHandle, mapError, mapMapResponse, mapTransform };
@@ -175,6 +175,11 @@ function createFetchHandler(app) {
175
175
  const asyncIndexes = onRequests.length ? require_handler_utils.getAsyncIndexes(onRequests) : void 0;
176
176
  return async (request) => {
177
177
  const context = new Context(request);
178
+ let aborted = request.signal.aborted;
179
+ if (!aborted) request.signal.addEventListener("abort", () => {
180
+ aborted = true;
181
+ }, { once: true });
182
+ if (aborted) return require_handler_utils.emptyResponse.clone();
178
183
  const url = request.url, s = url.indexOf("/", pathStart);
179
184
  context.path = url.substring(s, (context.qi = url.indexOf("?", s)) === -1 ? url.length : context.qi);
180
185
  context.rid = require_utils.requestId();
@@ -201,6 +206,10 @@ function createFetchHandler(app) {
201
206
  });
202
207
  const result = asyncIndexes?.[i] ? await onRequests[i](context) : onRequests[i](context);
203
208
  for (let i = 0; i < traceLength; i++) endReports[i]?.();
209
+ if (aborted) {
210
+ for (let j = 0; j < traceLength; j++) trace[j].r(requestReports[j]);
211
+ return require_handler_utils.emptyResponse.clone();
212
+ }
204
213
  if (result !== void 0) {
205
214
  for (let j = 0; j < traceLength; j++) trace[j].r(requestReports[j]);
206
215
  const response = mapResponse(result, context.set);
@@ -221,11 +230,17 @@ function createFetchHandler(app) {
221
230
  const asyncIndexes = require_handler_utils.getAsyncIndexes(onRequests);
222
231
  if (asyncIndexes) return async (request) => {
223
232
  const context = new Context(request);
233
+ let aborted = request.signal.aborted;
234
+ if (!aborted) request.signal.addEventListener("abort", () => {
235
+ aborted = true;
236
+ }, { once: true });
237
+ if (aborted) return require_handler_utils.emptyResponse.clone();
224
238
  const url = request.url, s = url.indexOf("/", pathStart);
225
239
  context.path = url.substring(s, (context.qi = url.indexOf("?", s)) === -1 ? url.length : context.qi);
226
240
  try {
227
241
  for (let i = 0; i < onRequests.length; i++) {
228
242
  const result = asyncIndexes?.[i] ? await onRequests[i](context) : onRequests[i](context);
243
+ if (aborted) return require_handler_utils.emptyResponse.clone();
229
244
  if (result !== void 0) {
230
245
  const response = mapResponse(result, context.set);
231
246
  afterResponse?.(context);
@@ -239,11 +254,17 @@ function createFetchHandler(app) {
239
254
  };
240
255
  return (request) => {
241
256
  const context = new Context(request);
257
+ let aborted = request.signal.aborted;
258
+ if (!aborted) request.signal.addEventListener("abort", () => {
259
+ aborted = true;
260
+ }, { once: true });
261
+ if (aborted) return require_handler_utils.emptyResponse.clone();
242
262
  const url = request.url, s = url.indexOf("/", pathStart);
243
263
  context.path = url.substring(s, (context.qi = url.indexOf("?", s)) === -1 ? url.length : context.qi);
244
264
  try {
245
265
  for (let i = 0; i < onRequests.length; i++) {
246
266
  const result = onRequests[i](context);
267
+ if (aborted) return require_handler_utils.emptyResponse.clone();
247
268
  if (result !== void 0) {
248
269
  const response = mapResponse(result, context.set);
249
270
  afterResponse?.(context);
@@ -1,7 +1,7 @@
1
1
  import { flattenChain, isNotEmpty, nullObject, requestId } from "../utils.mjs";
2
2
  import { NotFound, PROBLEM_JSON, internalServerErrorResponse, isProduction } from "../error.mjs";
3
3
  import { handleSet } from "../adapter/utils.mjs";
4
- import { cachedResponse, getAsyncIndexes } from "./utils.mjs";
4
+ import { cachedResponse, emptyResponse, getAsyncIndexes } from "./utils.mjs";
5
5
  import { createTracer, unionTracePhases } from "../trace.mjs";
6
6
  import { createContext } from "../context.mjs";
7
7
  import { defaultAdapter } from "../adapter/constants.mjs";
@@ -173,6 +173,11 @@ function createFetchHandler(app) {
173
173
  const asyncIndexes = onRequests.length ? getAsyncIndexes(onRequests) : void 0;
174
174
  return async (request) => {
175
175
  const context = new Context(request);
176
+ let aborted = request.signal.aborted;
177
+ if (!aborted) request.signal.addEventListener("abort", () => {
178
+ aborted = true;
179
+ }, { once: true });
180
+ if (aborted) return emptyResponse.clone();
176
181
  const url = request.url, s = url.indexOf("/", pathStart);
177
182
  context.path = url.substring(s, (context.qi = url.indexOf("?", s)) === -1 ? url.length : context.qi);
178
183
  context.rid = requestId();
@@ -199,6 +204,10 @@ function createFetchHandler(app) {
199
204
  });
200
205
  const result = asyncIndexes?.[i] ? await onRequests[i](context) : onRequests[i](context);
201
206
  for (let i = 0; i < traceLength; i++) endReports[i]?.();
207
+ if (aborted) {
208
+ for (let j = 0; j < traceLength; j++) trace[j].r(requestReports[j]);
209
+ return emptyResponse.clone();
210
+ }
202
211
  if (result !== void 0) {
203
212
  for (let j = 0; j < traceLength; j++) trace[j].r(requestReports[j]);
204
213
  const response = mapResponse(result, context.set);
@@ -219,11 +228,17 @@ function createFetchHandler(app) {
219
228
  const asyncIndexes = getAsyncIndexes(onRequests);
220
229
  if (asyncIndexes) return async (request) => {
221
230
  const context = new Context(request);
231
+ let aborted = request.signal.aborted;
232
+ if (!aborted) request.signal.addEventListener("abort", () => {
233
+ aborted = true;
234
+ }, { once: true });
235
+ if (aborted) return emptyResponse.clone();
222
236
  const url = request.url, s = url.indexOf("/", pathStart);
223
237
  context.path = url.substring(s, (context.qi = url.indexOf("?", s)) === -1 ? url.length : context.qi);
224
238
  try {
225
239
  for (let i = 0; i < onRequests.length; i++) {
226
240
  const result = asyncIndexes?.[i] ? await onRequests[i](context) : onRequests[i](context);
241
+ if (aborted) return emptyResponse.clone();
227
242
  if (result !== void 0) {
228
243
  const response = mapResponse(result, context.set);
229
244
  afterResponse?.(context);
@@ -237,11 +252,17 @@ function createFetchHandler(app) {
237
252
  };
238
253
  return (request) => {
239
254
  const context = new Context(request);
255
+ let aborted = request.signal.aborted;
256
+ if (!aborted) request.signal.addEventListener("abort", () => {
257
+ aborted = true;
258
+ }, { once: true });
259
+ if (aborted) return emptyResponse.clone();
240
260
  const url = request.url, s = url.indexOf("/", pathStart);
241
261
  context.path = url.substring(s, (context.qi = url.indexOf("?", s)) === -1 ? url.length : context.qi);
242
262
  try {
243
263
  for (let i = 0; i < onRequests.length; i++) {
244
264
  const result = onRequests[i](context);
265
+ if (aborted) return emptyResponse.clone();
245
266
  if (result !== void 0) {
246
267
  const response = mapResponse(result, context.set);
247
268
  afterResponse?.(context);
@@ -1,4 +1,4 @@
1
+ import { getAsyncIndexes } from "./utils.js";
1
2
  import { createErrorHandler } from "./error.js";
2
3
  import { applyHoc, createFetchHandler } from "./fetch.js";
3
- import { getAsyncIndexes } from "./utils.js";
4
4
  export { applyHoc, createErrorHandler, createFetchHandler, getAsyncIndexes };
@@ -1,6 +1,9 @@
1
1
  //#region src/handler/utils.d.ts
2
+ declare const emptyResponse: Response | {
3
+ clone: () => Response;
4
+ };
2
5
  declare function cachedResponse(body: string, status: number, headers?: Record<string, string>): () => Response;
3
6
  declare function forwardError<T>(value: T): T;
4
7
  declare function getAsyncIndexes(onRequests: Function[]): (true | undefined)[] | undefined;
5
8
  //#endregion
6
- export { cachedResponse, forwardError, getAsyncIndexes };
9
+ export { cachedResponse, emptyResponse, forwardError, getAsyncIndexes };
@@ -3,6 +3,7 @@ const require_universal_constants = require('../universal/constants.js');
3
3
  const require_compile_utils = require('../compile/utils.js');
4
4
 
5
5
  //#region src/handler/utils.ts
6
+ const emptyResponse = require_universal_constants.isCloudflareWorker ? { clone: () => new Response(null) } : new Response(null);
6
7
  function cachedResponse(body, status, headers) {
7
8
  let cached;
8
9
  return () => require_universal_constants.isCloudflareWorker ? new Response(body, {
@@ -28,5 +29,6 @@ function getAsyncIndexes(onRequests) {
28
29
 
29
30
  //#endregion
30
31
  exports.cachedResponse = cachedResponse;
32
+ exports.emptyResponse = emptyResponse;
31
33
  exports.forwardError = forwardError;
32
34
  exports.getAsyncIndexes = getAsyncIndexes;
@@ -2,6 +2,7 @@ import { isCloudflareWorker } from "../universal/constants.mjs";
2
2
  import { isAsyncFunction } from "../compile/utils.mjs";
3
3
 
4
4
  //#region src/handler/utils.ts
5
+ const emptyResponse = isCloudflareWorker ? { clone: () => new Response(null) } : new Response(null);
5
6
  function cachedResponse(body, status, headers) {
6
7
  let cached;
7
8
  return () => isCloudflareWorker ? new Response(body, {
@@ -26,4 +27,4 @@ function getAsyncIndexes(onRequests) {
26
27
  }
27
28
 
28
29
  //#endregion
29
- export { cachedResponse, forwardError, getAsyncIndexes };
30
+ export { cachedResponse, emptyResponse, forwardError, getAsyncIndexes };
@@ -17,7 +17,7 @@ declare const ELYSIA_TYPES: {
17
17
  readonly NoValidate: 15;
18
18
  };
19
19
  type ELYSIA_TYPES = typeof ELYSIA_TYPES;
20
- declare const primitiveElysiaTypes: Set<1 | 2 | 3 | 6 | 10 | 11 | 13 | 14>;
20
+ declare const primitiveElysiaTypes: Set<3 | 1 | 2 | 6 | 10 | 11 | 13 | 14>;
21
21
  declare const noEnumerable: {
22
22
  readonly enumerable: false;
23
23
  };
@@ -1,9 +1,9 @@
1
1
  import { ELYSIA_TYPES } from "./constants.js";
2
2
  import { CookieOptions } from "../cookie/types.js";
3
3
  import { MaybeArray } from "../types.js";
4
- import { Validator } from "typebox/schema";
5
4
  import { TObjectOptions, TSchemaOptions } from "typebox";
6
5
  import { TLocalizedValidationError } from "typebox/error";
6
+ import { Validator } from "typebox/schema";
7
7
 
8
8
  //#region src/type/types.d.ts
9
9
  type FileUnit = number | `${number}${'k' | 'm'}`;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elysia",
3
3
  "description": "Ergonomic Framework for Human",
4
- "version": "2.0.0-exp.33",
4
+ "version": "2.0.0-exp.34",
5
5
  "author": {
6
6
  "name": "saltyAom",
7
7
  "url": "https://github.com/SaltyAom",