elysia 1.4.21 → 1.4.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/adapter/bun/compose.js +1 -1
- package/dist/adapter/bun/compose.mjs +1 -1
- package/dist/adapter/bun/handler.js +87 -84
- package/dist/adapter/bun/handler.mjs +87 -84
- package/dist/adapter/bun/index.js +1 -1
- package/dist/adapter/bun/index.mjs +1 -1
- package/dist/adapter/utils.d.ts +3 -3
- package/dist/adapter/utils.js +11 -9
- package/dist/adapter/utils.mjs +11 -9
- package/dist/adapter/web-standard/handler.d.ts +4 -2
- package/dist/adapter/web-standard/handler.js +94 -86
- package/dist/adapter/web-standard/handler.mjs +94 -86
- package/dist/bun/index.js +10 -10
- package/dist/bun/index.js.map +13 -13
- package/dist/compose.js +11 -3
- package/dist/compose.mjs +11 -3
- package/dist/dynamic-handle.js +2 -1
- package/dist/dynamic-handle.mjs +2 -1
- package/dist/error.d.ts +7 -11
- package/dist/error.js +2 -5
- package/dist/error.mjs +2 -5
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/type-system/index.js +1 -1
- package/dist/type-system/index.mjs +1 -1
- package/dist/utils.js +2 -2
- package/dist/utils.mjs +2 -2
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ const allocateIf = (value, condition) => condition ? value : "", createContext =
|
|
|
24
24
|
const defaultHeaders = app.setHeaders, hasTrace = !!app.event.trace?.length;
|
|
25
25
|
hasTrace && (fnLiteral += `const id=randomId()
|
|
26
26
|
`);
|
|
27
|
-
const isDynamic = /[:*]/.test(route.path), getQi = `const u=request.url,s=u.indexOf('/',${app.config.handler?.standardHostname ?? !0 ? 11 : 7}),qi=u.indexOf('?',
|
|
27
|
+
const isDynamic = /[:*]/.test(route.path), getQi = `const u=request.url,s=u.indexOf('/',${app.config.handler?.standardHostname ?? !0 ? 11 : 7}),qi=u.indexOf('?',s+1)
|
|
28
28
|
`, needsQuery = inference.query || !!route.hooks.query || !!route.hooks.standaloneValidator?.find(
|
|
29
29
|
(x) => x.query
|
|
30
30
|
) || app.event.request?.length;
|
|
@@ -9,7 +9,7 @@ const allocateIf = (value, condition) => condition ? value : "", createContext =
|
|
|
9
9
|
const defaultHeaders = app.setHeaders, hasTrace = !!app.event.trace?.length;
|
|
10
10
|
hasTrace && (fnLiteral += `const id=randomId()
|
|
11
11
|
`);
|
|
12
|
-
const isDynamic = /[:*]/.test(route.path), getQi = `const u=request.url,s=u.indexOf('/',${app.config.handler?.standardHostname ?? !0 ? 11 : 7}),qi=u.indexOf('?',
|
|
12
|
+
const isDynamic = /[:*]/.test(route.path), getQi = `const u=request.url,s=u.indexOf('/',${app.config.handler?.standardHostname ?? !0 ? 11 : 7}),qi=u.indexOf('?',s+1)
|
|
13
13
|
`, needsQuery = inference.query || !!route.hooks.query || !!route.hooks.standaloneValidator?.find(
|
|
14
14
|
(x) => x.query
|
|
15
15
|
) || app.event.request?.length;
|
|
@@ -23,161 +23,160 @@ __export(handler_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(handler_exports);
|
|
25
25
|
var import_utils = require('../utils.js'), import_utils2 = require('../../utils.js'), import_cookies = require('../../cookies.js'), import_error = require('../../error.js');
|
|
26
|
-
const mapResponse = (response,
|
|
27
|
-
if ((0, import_utils2.isNotEmpty)(
|
|
28
|
-
switch ((0, import_utils.handleSet)(
|
|
26
|
+
const mapResponse = (response, set, request) => {
|
|
27
|
+
if ((0, import_utils2.isNotEmpty)(set.headers) || set.status !== 200 || set.cookie)
|
|
28
|
+
switch ((0, import_utils.handleSet)(set), response?.constructor?.name) {
|
|
29
29
|
case "String":
|
|
30
|
-
return new Response(response,
|
|
30
|
+
return new Response(response, set);
|
|
31
31
|
case "Array":
|
|
32
32
|
case "Object":
|
|
33
|
-
return
|
|
33
|
+
return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
|
|
34
34
|
case "ElysiaFile":
|
|
35
|
-
return (0, import_utils.handleFile)(
|
|
36
|
-
response.value,
|
|
37
|
-
set2
|
|
38
|
-
);
|
|
35
|
+
return (0, import_utils.handleFile)(response.value, set);
|
|
39
36
|
case "File":
|
|
40
|
-
return (0, import_utils.handleFile)(response,
|
|
37
|
+
return (0, import_utils.handleFile)(response, set);
|
|
41
38
|
case "Blob":
|
|
42
|
-
return (0, import_utils.handleFile)(response,
|
|
39
|
+
return (0, import_utils.handleFile)(response, set);
|
|
43
40
|
case "ElysiaCustomStatusResponse":
|
|
44
|
-
return
|
|
41
|
+
return set.status = response.code, mapResponse(
|
|
45
42
|
response.response,
|
|
46
|
-
|
|
43
|
+
set,
|
|
47
44
|
request
|
|
48
45
|
);
|
|
49
46
|
case void 0:
|
|
50
|
-
return response ? new Response(JSON.stringify(response),
|
|
47
|
+
return response ? new Response(JSON.stringify(response), set) : new Response("", set);
|
|
51
48
|
case "Response":
|
|
52
|
-
return handleResponse(response,
|
|
49
|
+
return handleResponse(response, set, request);
|
|
53
50
|
case "Error":
|
|
54
|
-
return errorToResponse(response,
|
|
51
|
+
return errorToResponse(response, set);
|
|
55
52
|
case "Promise":
|
|
56
53
|
return response.then(
|
|
57
|
-
(x) => mapResponse(x,
|
|
54
|
+
(x) => mapResponse(x, set, request)
|
|
58
55
|
);
|
|
59
56
|
case "Function":
|
|
60
|
-
return mapResponse(response(),
|
|
57
|
+
return mapResponse(response(), set, request);
|
|
61
58
|
case "Number":
|
|
62
59
|
case "Boolean":
|
|
63
60
|
return new Response(
|
|
64
61
|
response.toString(),
|
|
65
|
-
|
|
62
|
+
set
|
|
66
63
|
);
|
|
67
64
|
case "Cookie":
|
|
68
|
-
return response instanceof import_cookies.Cookie ? new Response(response.value,
|
|
65
|
+
return response instanceof import_cookies.Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);
|
|
69
66
|
case "FormData":
|
|
70
|
-
return new Response(response,
|
|
67
|
+
return new Response(response, set);
|
|
71
68
|
default:
|
|
72
69
|
if (response instanceof Response)
|
|
73
|
-
return handleResponse(response,
|
|
70
|
+
return handleResponse(response, set, request);
|
|
74
71
|
if (response instanceof Promise)
|
|
75
|
-
return response.then((x) => mapResponse(x,
|
|
72
|
+
return response.then((x) => mapResponse(x, set));
|
|
76
73
|
if (response instanceof Error)
|
|
77
|
-
return errorToResponse(response,
|
|
74
|
+
return errorToResponse(response, set);
|
|
78
75
|
if (response instanceof import_error.ElysiaCustomStatusResponse)
|
|
79
|
-
return
|
|
76
|
+
return set.status = response.code, mapResponse(
|
|
80
77
|
response.response,
|
|
81
|
-
|
|
78
|
+
set,
|
|
82
79
|
request
|
|
83
80
|
);
|
|
84
81
|
if (
|
|
85
82
|
// @ts-expect-error
|
|
86
83
|
typeof response?.next == "function" || response instanceof ReadableStream
|
|
87
84
|
)
|
|
88
|
-
return handleStream(response,
|
|
85
|
+
return handleStream(response, set, request);
|
|
89
86
|
if (typeof response?.then == "function")
|
|
90
|
-
return response.then((x) => mapResponse(x,
|
|
87
|
+
return response.then((x) => mapResponse(x, set));
|
|
91
88
|
if (typeof response?.toResponse == "function")
|
|
92
|
-
return mapResponse(response.toResponse(),
|
|
89
|
+
return mapResponse(response.toResponse(), set);
|
|
93
90
|
if ("charCodeAt" in response) {
|
|
94
91
|
const code = response.charCodeAt(0);
|
|
95
92
|
if (code === 123 || code === 91)
|
|
96
|
-
return
|
|
93
|
+
return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
|
|
97
94
|
JSON.stringify(response),
|
|
98
|
-
|
|
95
|
+
set
|
|
99
96
|
);
|
|
100
97
|
}
|
|
101
|
-
return new Response(response,
|
|
98
|
+
return new Response(response, set);
|
|
102
99
|
}
|
|
103
100
|
return (
|
|
104
101
|
// @ts-expect-error
|
|
105
|
-
typeof response?.next == "function" || response instanceof ReadableStream ? handleStream(response,
|
|
102
|
+
typeof response?.next == "function" || response instanceof ReadableStream ? handleStream(response, set, request) : mapCompactResponse(response, request)
|
|
106
103
|
);
|
|
107
|
-
}, mapEarlyResponse = (response,
|
|
104
|
+
}, mapEarlyResponse = (response, set, request) => {
|
|
108
105
|
if (response != null)
|
|
109
|
-
if ((0, import_utils2.isNotEmpty)(
|
|
110
|
-
switch ((0, import_utils.handleSet)(
|
|
106
|
+
if ((0, import_utils2.isNotEmpty)(set.headers) || set.status !== 200 || set.cookie)
|
|
107
|
+
switch ((0, import_utils.handleSet)(set), response?.constructor?.name) {
|
|
111
108
|
case "String":
|
|
112
|
-
return new Response(response,
|
|
109
|
+
return new Response(response, set);
|
|
113
110
|
case "Array":
|
|
114
111
|
case "Object":
|
|
115
|
-
return
|
|
112
|
+
return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
|
|
116
113
|
case "ElysiaFile":
|
|
117
|
-
return (0, import_utils.handleFile)(response.value,
|
|
114
|
+
return (0, import_utils.handleFile)(response.value, set);
|
|
118
115
|
case "File":
|
|
119
|
-
return (0, import_utils.handleFile)(response,
|
|
116
|
+
return (0, import_utils.handleFile)(response, set);
|
|
120
117
|
case "Blob":
|
|
121
|
-
return (0, import_utils.handleFile)(response,
|
|
118
|
+
return (0, import_utils.handleFile)(response, set);
|
|
122
119
|
case "ElysiaCustomStatusResponse":
|
|
123
|
-
return
|
|
120
|
+
return set.status = response.code, mapEarlyResponse(
|
|
124
121
|
response.response,
|
|
125
|
-
|
|
122
|
+
set,
|
|
126
123
|
request
|
|
127
124
|
);
|
|
128
125
|
case void 0:
|
|
129
|
-
return response ? new Response(JSON.stringify(response),
|
|
126
|
+
return response ? new Response(JSON.stringify(response), set) : void 0;
|
|
130
127
|
case "Response":
|
|
131
|
-
return handleResponse(response,
|
|
128
|
+
return handleResponse(response, set, request);
|
|
132
129
|
case "Promise":
|
|
133
130
|
return response.then(
|
|
134
|
-
(x) => mapEarlyResponse(x,
|
|
131
|
+
(x) => mapEarlyResponse(x, set)
|
|
135
132
|
);
|
|
136
133
|
case "Error":
|
|
137
|
-
return errorToResponse(response,
|
|
134
|
+
return errorToResponse(response, set);
|
|
138
135
|
case "Function":
|
|
139
|
-
return mapEarlyResponse(response(),
|
|
136
|
+
return mapEarlyResponse(response(), set);
|
|
140
137
|
case "Number":
|
|
141
138
|
case "Boolean":
|
|
142
139
|
return new Response(
|
|
143
140
|
response.toString(),
|
|
144
|
-
|
|
141
|
+
set
|
|
145
142
|
);
|
|
146
143
|
case "FormData":
|
|
147
144
|
return new Response(response);
|
|
148
145
|
case "Cookie":
|
|
149
|
-
return response instanceof import_cookies.Cookie ? new Response(response.value,
|
|
146
|
+
return response instanceof import_cookies.Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);
|
|
150
147
|
default:
|
|
151
148
|
if (response instanceof Response)
|
|
152
|
-
return handleResponse(response,
|
|
149
|
+
return handleResponse(response, set, request);
|
|
153
150
|
if (response instanceof Promise)
|
|
154
|
-
return response.then((x) => mapEarlyResponse(x,
|
|
151
|
+
return response.then((x) => mapEarlyResponse(x, set));
|
|
155
152
|
if (response instanceof Error)
|
|
156
|
-
return errorToResponse(response,
|
|
153
|
+
return errorToResponse(response, set);
|
|
157
154
|
if (response instanceof import_error.ElysiaCustomStatusResponse)
|
|
158
|
-
return
|
|
155
|
+
return set.status = response.code, mapEarlyResponse(
|
|
159
156
|
response.response,
|
|
160
|
-
|
|
157
|
+
set,
|
|
161
158
|
request
|
|
162
159
|
);
|
|
163
160
|
if (
|
|
164
161
|
// @ts-expect-error
|
|
165
162
|
typeof response?.next == "function" || response instanceof ReadableStream
|
|
166
163
|
)
|
|
167
|
-
return handleStream(response,
|
|
164
|
+
return handleStream(response, set, request);
|
|
168
165
|
if (typeof response?.then == "function")
|
|
169
|
-
return response.then(
|
|
166
|
+
return response.then(
|
|
167
|
+
(x) => mapEarlyResponse(x, set)
|
|
168
|
+
);
|
|
170
169
|
if (typeof response?.toResponse == "function")
|
|
171
|
-
return mapEarlyResponse(response.toResponse(),
|
|
170
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
172
171
|
if ("charCodeAt" in response) {
|
|
173
172
|
const code = response.charCodeAt(0);
|
|
174
173
|
if (code === 123 || code === 91)
|
|
175
|
-
return
|
|
174
|
+
return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
|
|
176
175
|
JSON.stringify(response),
|
|
177
|
-
|
|
176
|
+
set
|
|
178
177
|
);
|
|
179
178
|
}
|
|
180
|
-
return new Response(response,
|
|
179
|
+
return new Response(response, set);
|
|
181
180
|
}
|
|
182
181
|
else
|
|
183
182
|
switch (response?.constructor?.name) {
|
|
@@ -185,17 +184,17 @@ const mapResponse = (response, set2, request) => {
|
|
|
185
184
|
return new Response(response);
|
|
186
185
|
case "Array":
|
|
187
186
|
case "Object":
|
|
188
|
-
return
|
|
187
|
+
return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
|
|
189
188
|
case "ElysiaFile":
|
|
190
|
-
return (0, import_utils.handleFile)(response.value,
|
|
189
|
+
return (0, import_utils.handleFile)(response.value, set);
|
|
191
190
|
case "File":
|
|
192
|
-
return (0, import_utils.handleFile)(response,
|
|
191
|
+
return (0, import_utils.handleFile)(response, set);
|
|
193
192
|
case "Blob":
|
|
194
|
-
return (0, import_utils.handleFile)(response,
|
|
193
|
+
return (0, import_utils.handleFile)(response, set);
|
|
195
194
|
case "ElysiaCustomStatusResponse":
|
|
196
|
-
return
|
|
195
|
+
return set.status = response.code, mapEarlyResponse(
|
|
197
196
|
response.response,
|
|
198
|
-
|
|
197
|
+
set,
|
|
199
198
|
request
|
|
200
199
|
);
|
|
201
200
|
case void 0:
|
|
@@ -208,47 +207,49 @@ const mapResponse = (response, set2, request) => {
|
|
|
208
207
|
return response;
|
|
209
208
|
case "Promise":
|
|
210
209
|
return response.then((x) => {
|
|
211
|
-
const r = mapEarlyResponse(x,
|
|
210
|
+
const r = mapEarlyResponse(x, set);
|
|
212
211
|
if (r !== void 0) return r;
|
|
213
212
|
});
|
|
214
213
|
case "Error":
|
|
215
|
-
return errorToResponse(response,
|
|
214
|
+
return errorToResponse(response, set);
|
|
216
215
|
case "Function":
|
|
217
216
|
return mapCompactResponse(response(), request);
|
|
218
217
|
case "Number":
|
|
219
218
|
case "Boolean":
|
|
220
219
|
return new Response(response.toString());
|
|
221
220
|
case "Cookie":
|
|
222
|
-
return response instanceof import_cookies.Cookie ? new Response(response.value,
|
|
221
|
+
return response instanceof import_cookies.Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);
|
|
223
222
|
case "FormData":
|
|
224
223
|
return new Response(response);
|
|
225
224
|
default:
|
|
226
225
|
if (response instanceof Response) return response;
|
|
227
226
|
if (response instanceof Promise)
|
|
228
|
-
return response.then((x) => mapEarlyResponse(x,
|
|
227
|
+
return response.then((x) => mapEarlyResponse(x, set));
|
|
229
228
|
if (response instanceof Error)
|
|
230
|
-
return errorToResponse(response,
|
|
229
|
+
return errorToResponse(response, set);
|
|
231
230
|
if (response instanceof import_error.ElysiaCustomStatusResponse)
|
|
232
|
-
return
|
|
231
|
+
return set.status = response.code, mapEarlyResponse(
|
|
233
232
|
response.response,
|
|
234
|
-
|
|
233
|
+
set,
|
|
235
234
|
request
|
|
236
235
|
);
|
|
237
236
|
if (
|
|
238
237
|
// @ts-expect-error
|
|
239
238
|
typeof response?.next == "function" || response instanceof ReadableStream
|
|
240
239
|
)
|
|
241
|
-
return handleStream(response,
|
|
240
|
+
return handleStream(response, set, request);
|
|
242
241
|
if (typeof response?.then == "function")
|
|
243
|
-
return response.then(
|
|
242
|
+
return response.then(
|
|
243
|
+
(x) => mapEarlyResponse(x, set)
|
|
244
|
+
);
|
|
244
245
|
if (typeof response?.toResponse == "function")
|
|
245
|
-
return mapEarlyResponse(response.toResponse(),
|
|
246
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
246
247
|
if ("charCodeAt" in response) {
|
|
247
248
|
const code = response.charCodeAt(0);
|
|
248
249
|
if (code === 123 || code === 91)
|
|
249
|
-
return
|
|
250
|
+
return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
|
|
250
251
|
JSON.stringify(response),
|
|
251
|
-
|
|
252
|
+
set
|
|
252
253
|
);
|
|
253
254
|
}
|
|
254
255
|
return new Response(response);
|
|
@@ -322,7 +323,9 @@ const mapResponse = (response, set2, request) => {
|
|
|
322
323
|
)
|
|
323
324
|
return handleStream(response, void 0, request);
|
|
324
325
|
if (typeof response?.then == "function")
|
|
325
|
-
return response.then(
|
|
326
|
+
return response.then(
|
|
327
|
+
(x) => mapCompactResponse(x, request)
|
|
328
|
+
);
|
|
326
329
|
if (typeof response?.toResponse == "function")
|
|
327
330
|
return mapCompactResponse(response.toResponse());
|
|
328
331
|
if ("charCodeAt" in response) {
|
|
@@ -336,9 +339,9 @@ const mapResponse = (response, set2, request) => {
|
|
|
336
339
|
}
|
|
337
340
|
return new Response(response);
|
|
338
341
|
}
|
|
339
|
-
}, errorToResponse = (error,
|
|
342
|
+
}, errorToResponse = (error, set) => {
|
|
340
343
|
if (typeof error?.toResponse == "function") {
|
|
341
|
-
const raw = error.toResponse(), targetSet =
|
|
344
|
+
const raw = error.toResponse(), targetSet = set ?? { headers: {}, status: 200, redirect: "" }, apply = (resolved) => (resolved instanceof Response && (targetSet.status = resolved.status), mapResponse(resolved, targetSet));
|
|
342
345
|
return typeof raw?.then == "function" ? raw.then(apply) : apply(raw);
|
|
343
346
|
}
|
|
344
347
|
return new Response(
|
|
@@ -348,8 +351,8 @@ const mapResponse = (response, set2, request) => {
|
|
|
348
351
|
cause: error?.cause
|
|
349
352
|
}),
|
|
350
353
|
{
|
|
351
|
-
status:
|
|
352
|
-
headers:
|
|
354
|
+
status: set?.status !== 200 ? set?.status ?? 500 : 500,
|
|
355
|
+
headers: set?.headers
|
|
353
356
|
}
|
|
354
357
|
);
|
|
355
358
|
}, createStaticHandler = (handle, hooks, setHeaders = {}) => {
|