elysia 0.5.21 → 0.5.22
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/cjs/compose.js +1 -3
- package/dist/cjs/types.d.ts +1 -1
- package/dist/compose.js +7 -8
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
package/dist/cjs/compose.js
CHANGED
|
@@ -446,10 +446,8 @@ const composeHandler = ({ method, hooks, validator, handler, handleError, meta,
|
|
|
446
446
|
fnLiteral += `${name} = mapEarlyResponse(${name}, c.set)\n`;
|
|
447
447
|
fnLiteral += `if(${name}) return ${name};\n}`;
|
|
448
448
|
}
|
|
449
|
-
else
|
|
450
|
-
fnLiteral += `${name} = mapEarlyResponse(${name}, c.set)\n`;
|
|
449
|
+
else
|
|
451
450
|
fnLiteral += `if(${name}) return ${name};\n`;
|
|
452
|
-
}
|
|
453
451
|
}
|
|
454
452
|
}
|
|
455
453
|
if (validator.response)
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export interface LifeCycle<Instance extends ElysiaInstance = ElysiaInstance> {
|
|
|
50
50
|
error: ErrorHandler;
|
|
51
51
|
stop: VoidLifeCycle<Instance>;
|
|
52
52
|
}
|
|
53
|
-
export type AfterRequestHandler<Route extends TypedRoute, Instance extends ElysiaInstance> = (context: Context<Route, Instance['store']> & Instance['request'], response: Route['response']) => void | MaybePromise<
|
|
53
|
+
export type AfterRequestHandler<Route extends TypedRoute, Instance extends ElysiaInstance> = (context: Context<Route, Instance['store']> & Instance['request'], response: Route['response']) => void | MaybePromise<Response>;
|
|
54
54
|
export interface LifeCycleStore<Instance extends ElysiaInstance> {
|
|
55
55
|
type?: ContentType;
|
|
56
56
|
start: VoidLifeCycle<Instance>[];
|
package/dist/compose.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{parse as e}from"fast-querystring";import{mapEarlyResponse as r,mapResponse as t,mapCompactResponse as s}from"./handler";import{SCHEMA as n,DEFS as
|
|
1
|
+
import{parse as e}from"fast-querystring";import{mapEarlyResponse as r,mapResponse as t,mapCompactResponse as s}from"./handler";import{SCHEMA as n,DEFS as o}from"./utils";import{NotFoundError as a,ValidationError as c,InternalServerError as l}from"./error";let i="AsyncFunction",f=e=>e.constructor.name===i,u=new Headers,d=RegExp(" (\\w+) = context","g");export const hasReturn=e=>{let r=e.indexOf(")");return 61===e.charCodeAt(r+2)&&123!==e.charCodeAt(r+5)||e.includes("return")};let p=e=>({composeValidation:(r,t=`c.${r}`)=>e?`throw new ValidationError(
|
|
2
2
|
'${r}',
|
|
3
3
|
${r},
|
|
4
4
|
${t}
|
|
@@ -14,7 +14,7 @@ ${r}
|
|
|
14
14
|
'response',
|
|
15
15
|
response[c.set.status],
|
|
16
16
|
${r}
|
|
17
|
-
).toResponse(c.set.headers)`});export const isFnUse=(e,r)=>{r=(r=r.trimStart()).replaceAll(/^async /g,"");let t=40===r.charCodeAt(0)||r.startsWith("function")?r.slice(r.indexOf("(")+1,r.indexOf(")")):r.slice(0,r.indexOf("=")-1);if(""===t)return!1;if(123===t.charCodeAt(0))return!!t.includes(e);if(r.match(RegExp(`${t}(.${e}|\\["${e}"\\])`)))return!0;let s=[t];for(let e of r.matchAll(d))s.push(e[1]);let n=RegExp(`{.*?} = (${s.join("|")})`,"g");for(let[t]of r.matchAll(n))if(t.includes(`{ ${e}`)||t.includes(`, ${e}`))return!0;return!1};export const findElysiaMeta=(e,r,t=[],s="")=>{if("object"===r.type){let n=r.properties;for(let r in n){let
|
|
17
|
+
).toResponse(c.set.headers)`});export const isFnUse=(e,r)=>{r=(r=r.trimStart()).replaceAll(/^async /g,"");let t=40===r.charCodeAt(0)||r.startsWith("function")?r.slice(r.indexOf("(")+1,r.indexOf(")")):r.slice(0,r.indexOf("=")-1);if(""===t)return!1;if(123===t.charCodeAt(0))return!!t.includes(e);if(r.match(RegExp(`${t}(.${e}|\\["${e}"\\])`)))return!0;let s=[t];for(let e of r.matchAll(d))s.push(e[1]);let n=RegExp(`{.*?} = (${s.join("|")})`,"g");for(let[t]of r.matchAll(n))if(t.includes(`{ ${e}`)||t.includes(`, ${e}`))return!0;return!1};export const findElysiaMeta=(e,r,t=[],s="")=>{if("object"===r.type){let n=r.properties;for(let r in n){let o=n[r],a=s?s+"."+r:r;if("object"===o.type){findElysiaMeta(e,o,t,a);continue}if(o.anyOf){for(let r of o.anyOf)findElysiaMeta(e,r,t,a);continue}o.elysiaMeta===e&&t.push(a)}return 0===t.length?null:t}return r?.elysiaMeta===e?(s&&t.push(s),"root"):null};let y=e=>{if(!e)return;let r=e?.schema;if(r&&"anyOf"in r){let e=!1,t=r.anyOf[0].type;for(let s of r.anyOf)if(s.type!==t){e=!0;break}if(!e)return t}};export const composeHandler=({method:d,hooks:m,validator:h,handler:$,handleError:b,meta:q,onRequest:E,config:g})=>{let w=g.forceErrorEncapsulation||m.error.length>0||"undefined"==typeof Bun,{composeValidation:x,composeResponseValidation:k}=p(w),H=w?"try {\n":"",R=h||"GET"!==d?[$,...m.transform,...m.beforeHandle,...m.afterHandle].map(e=>e.toString()):[],v="GET"!==d&&"none"!==m.type&&(h.body||m.type||R.some(e=>isFnUse("body",e))),O=h.headers||R.some(e=>isFnUse("headers",e));O&&(H+=u.toJSON?`c.headers = c.request.headers.toJSON()
|
|
18
18
|
`:`c.headers = {}
|
|
19
19
|
for (const [key, value] of c.request.headers.entries())
|
|
20
20
|
c.headers[key] = value
|
|
@@ -118,8 +118,7 @@ ${r}
|
|
|
118
118
|
}
|
|
119
119
|
${r} = mapEarlyResponse(${r}, c.set)
|
|
120
120
|
if(${r}) return ${r};
|
|
121
|
-
}`:H
|
|
122
|
-
if(${r}) return ${r};
|
|
121
|
+
}`:H+=`if(${r}) return ${r};
|
|
123
122
|
`):H+=m.afterHandle[e].constructor.name===i?`await afterHandle[${e}](c, r)
|
|
124
123
|
`:`afterHandle[${e}](c, r)
|
|
125
124
|
`}h.response&&(H+=`if(response[c.set.status]?.Check(r) === false) {
|
|
@@ -199,7 +198,7 @@ if(${r}) return ${r};
|
|
|
199
198
|
return ${F?"async":""} function(c) {
|
|
200
199
|
${q?"c[SCHEMA] = meta[SCHEMA]; c[DEFS] = meta[DEFS];":""}
|
|
201
200
|
${H}
|
|
202
|
-
}`;let N=Function("hooks",H);return N({handler:$,hooks:m,validator:h,handleError:b,utils:{mapResponse:t,mapCompactResponse:s,mapEarlyResponse:r,parseQuery:e},error:{NotFoundError:
|
|
201
|
+
}`;let N=Function("hooks",H);return N({handler:$,hooks:m,validator:h,handleError:b,utils:{mapResponse:t,mapCompactResponse:s,mapEarlyResponse:r,parseQuery:e},error:{NotFoundError:a,ValidationError:c,InternalServerError:l},meta:q,SCHEMA:q?n:void 0,DEFS:q?o:void 0})};export const composeGeneralHandler=e=>{let t="";for(let r of Object.keys(e.decorators))t+=`,${r}: app.decorators.${r}`;let{router:s,staticRouter:n}=e,o=`
|
|
203
202
|
const route = find(request.method, path) ${s.root.ALL?'?? find("ALL", path)':""}
|
|
204
203
|
if (route === null)
|
|
205
204
|
return ${e.event.error.length?`handleError(
|
|
@@ -215,7 +214,7 @@ if(${r}) return ${r};
|
|
|
215
214
|
return route.store(ctx)`,c="";for(let[e,{code:r,all:t}]of Object.entries(n.map))c+=`case '${e}':
|
|
216
215
|
switch(request.method) {
|
|
217
216
|
${r}
|
|
218
|
-
${t??`default: ${
|
|
217
|
+
${t??`default: ${o}`}}
|
|
219
218
|
|
|
220
219
|
`;let l=`const {
|
|
221
220
|
app,
|
|
@@ -283,9 +282,9 @@ ${t??`default: ${a}`}}
|
|
|
283
282
|
${c}
|
|
284
283
|
|
|
285
284
|
default:
|
|
286
|
-
${
|
|
285
|
+
${o}
|
|
287
286
|
}
|
|
288
|
-
}`,e.handleError=composeErrorHandler(e),Function("data",l)({app:e,mapEarlyResponse:r,NotFoundError:
|
|
287
|
+
}`,e.handleError=composeErrorHandler(e),Function("data",l)({app:e,mapEarlyResponse:r,NotFoundError:a})};export const composeErrorHandler=e=>{let r=`const {
|
|
289
288
|
app: { event: { error: onError } },
|
|
290
289
|
mapResponse
|
|
291
290
|
} = inject
|
package/dist/types.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export interface LifeCycle<Instance extends ElysiaInstance = ElysiaInstance> {
|
|
|
50
50
|
error: ErrorHandler;
|
|
51
51
|
stop: VoidLifeCycle<Instance>;
|
|
52
52
|
}
|
|
53
|
-
export type AfterRequestHandler<Route extends TypedRoute, Instance extends ElysiaInstance> = (context: Context<Route, Instance['store']> & Instance['request'], response: Route['response']) => void | MaybePromise<
|
|
53
|
+
export type AfterRequestHandler<Route extends TypedRoute, Instance extends ElysiaInstance> = (context: Context<Route, Instance['store']> & Instance['request'], response: Route['response']) => void | MaybePromise<Response>;
|
|
54
54
|
export interface LifeCycleStore<Instance extends ElysiaInstance> {
|
|
55
55
|
type?: ContentType;
|
|
56
56
|
start: VoidLifeCycle<Instance>[];
|