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
|
@@ -23,184 +23,188 @@ __export(handler_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(handler_exports);
|
|
25
25
|
var import_utils = require('../utils.js'), import_file = require('../../universal/file.js'), import_utils2 = require('../../utils.js'), import_cookies = require('../../cookies.js'), import_error = require('../../error.js');
|
|
26
|
-
const handleElysiaFile = (file,
|
|
26
|
+
const handleElysiaFile = (file, set = {
|
|
27
27
|
headers: {}
|
|
28
28
|
}) => {
|
|
29
29
|
const path = file.path, contentType = import_file.mime[path.slice(path.lastIndexOf(".") + 1)];
|
|
30
|
-
return contentType && (
|
|
30
|
+
return contentType && (set.headers["content-type"] = contentType), file.stats && set.status !== 206 && set.status !== 304 && set.status !== 412 && set.status !== 416 ? file.stats.then((stat) => {
|
|
31
31
|
const size = stat.size;
|
|
32
|
-
return size !== void 0 && (
|
|
33
|
-
}) : (0, import_utils.handleFile)(file.value,
|
|
34
|
-
}, mapResponse = (response,
|
|
35
|
-
if ((0, import_utils2.isNotEmpty)(
|
|
36
|
-
switch ((0, import_utils.handleSet)(
|
|
32
|
+
return size !== void 0 && (set.headers["content-range"] = `bytes 0-${size - 1}/${size}`, set.headers["content-length"] = size), (0, import_utils.handleFile)(file.value, set);
|
|
33
|
+
}) : (0, import_utils.handleFile)(file.value, set);
|
|
34
|
+
}, mapResponse = (response, set, request) => {
|
|
35
|
+
if ((0, import_utils2.isNotEmpty)(set.headers) || set.status !== 200 || set.cookie)
|
|
36
|
+
switch ((0, import_utils.handleSet)(set), response?.constructor?.name) {
|
|
37
37
|
case "String":
|
|
38
|
-
return
|
|
38
|
+
return set.headers["content-type"] = "text/plain", new Response(response, set);
|
|
39
39
|
case "Array":
|
|
40
40
|
case "Object":
|
|
41
|
-
return
|
|
41
|
+
return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
|
|
42
42
|
case "ElysiaFile":
|
|
43
|
-
return handleElysiaFile(response,
|
|
43
|
+
return handleElysiaFile(response, set);
|
|
44
44
|
case "File":
|
|
45
|
-
return (0, import_utils.handleFile)(response,
|
|
45
|
+
return (0, import_utils.handleFile)(response, set);
|
|
46
46
|
case "Blob":
|
|
47
|
-
return (0, import_utils.handleFile)(response,
|
|
47
|
+
return (0, import_utils.handleFile)(response, set);
|
|
48
48
|
case "ElysiaCustomStatusResponse":
|
|
49
|
-
return
|
|
49
|
+
return set.status = response.code, mapResponse(
|
|
50
50
|
response.response,
|
|
51
|
-
|
|
51
|
+
set,
|
|
52
52
|
request
|
|
53
53
|
);
|
|
54
54
|
case void 0:
|
|
55
|
-
return response ? new Response(JSON.stringify(response),
|
|
55
|
+
return response ? new Response(JSON.stringify(response), set) : new Response("", set);
|
|
56
56
|
case "Response":
|
|
57
|
-
return handleResponse(response,
|
|
57
|
+
return handleResponse(response, set, request);
|
|
58
58
|
case "Error":
|
|
59
|
-
return errorToResponse(response,
|
|
59
|
+
return errorToResponse(response, set);
|
|
60
60
|
case "Promise":
|
|
61
61
|
return response.then(
|
|
62
|
-
(x) => mapResponse(x,
|
|
62
|
+
(x) => mapResponse(x, set, request)
|
|
63
63
|
);
|
|
64
64
|
case "Function":
|
|
65
|
-
return mapResponse(response(),
|
|
65
|
+
return mapResponse(response(), set, request);
|
|
66
66
|
case "Number":
|
|
67
67
|
case "Boolean":
|
|
68
68
|
return new Response(
|
|
69
69
|
response.toString(),
|
|
70
|
-
|
|
70
|
+
set
|
|
71
71
|
);
|
|
72
72
|
case "Cookie":
|
|
73
|
-
return response instanceof import_cookies.Cookie ? new Response(response.value,
|
|
73
|
+
return response instanceof import_cookies.Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);
|
|
74
74
|
case "FormData":
|
|
75
|
-
return new Response(response,
|
|
75
|
+
return new Response(response, set);
|
|
76
76
|
default:
|
|
77
77
|
if (response instanceof Response)
|
|
78
|
-
return handleResponse(response,
|
|
78
|
+
return handleResponse(response, set, request);
|
|
79
79
|
if (response instanceof Promise)
|
|
80
|
-
return response.then((x) => mapResponse(x,
|
|
80
|
+
return response.then((x) => mapResponse(x, set));
|
|
81
81
|
if (response instanceof Error)
|
|
82
|
-
return errorToResponse(response,
|
|
82
|
+
return errorToResponse(response, set);
|
|
83
83
|
if (response instanceof import_error.ElysiaCustomStatusResponse)
|
|
84
|
-
return
|
|
84
|
+
return set.status = response.code, mapResponse(
|
|
85
85
|
response.response,
|
|
86
|
-
|
|
86
|
+
set,
|
|
87
87
|
request
|
|
88
88
|
);
|
|
89
89
|
if (
|
|
90
90
|
// @ts-expect-error
|
|
91
91
|
typeof response?.next == "function" || response instanceof ReadableStream
|
|
92
92
|
)
|
|
93
|
-
return handleStream(response,
|
|
93
|
+
return handleStream(response, set, request);
|
|
94
94
|
if (typeof response?.then == "function")
|
|
95
|
-
return response.then(
|
|
95
|
+
return response.then(
|
|
96
|
+
(x) => mapResponse(x, set)
|
|
97
|
+
);
|
|
96
98
|
if (typeof response?.toResponse == "function")
|
|
97
|
-
return mapResponse(response.toResponse(),
|
|
99
|
+
return mapResponse(response.toResponse(), set);
|
|
98
100
|
if ("charCodeAt" in response) {
|
|
99
101
|
const code = response.charCodeAt(0);
|
|
100
102
|
if (code === 123 || code === 91)
|
|
101
|
-
return
|
|
103
|
+
return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
|
|
102
104
|
JSON.stringify(response),
|
|
103
|
-
|
|
105
|
+
set
|
|
104
106
|
);
|
|
105
107
|
}
|
|
106
|
-
return new Response(response,
|
|
108
|
+
return new Response(response, set);
|
|
107
109
|
}
|
|
108
110
|
return (
|
|
109
111
|
// @ts-expect-error
|
|
110
|
-
typeof response?.next == "function" || response instanceof ReadableStream ? handleStream(response,
|
|
112
|
+
typeof response?.next == "function" || response instanceof ReadableStream ? handleStream(response, set, request) : mapCompactResponse(response, request)
|
|
111
113
|
);
|
|
112
|
-
}, mapEarlyResponse = (response,
|
|
114
|
+
}, mapEarlyResponse = (response, set, request) => {
|
|
113
115
|
if (response != null)
|
|
114
|
-
if ((0, import_utils2.isNotEmpty)(
|
|
115
|
-
switch ((0, import_utils.handleSet)(
|
|
116
|
+
if ((0, import_utils2.isNotEmpty)(set.headers) || set.status !== 200 || set.cookie)
|
|
117
|
+
switch ((0, import_utils.handleSet)(set), response?.constructor?.name) {
|
|
116
118
|
case "String":
|
|
117
|
-
return
|
|
119
|
+
return set.headers["content-type"] = "text/plain", new Response(response, set);
|
|
118
120
|
case "Array":
|
|
119
121
|
case "Object":
|
|
120
|
-
return
|
|
122
|
+
return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
|
|
121
123
|
case "ElysiaFile":
|
|
122
|
-
return handleElysiaFile(response,
|
|
124
|
+
return handleElysiaFile(response, set);
|
|
123
125
|
case "File":
|
|
124
|
-
return (0, import_utils.handleFile)(response,
|
|
126
|
+
return (0, import_utils.handleFile)(response, set);
|
|
125
127
|
case "Blob":
|
|
126
|
-
return (0, import_utils.handleFile)(response,
|
|
128
|
+
return (0, import_utils.handleFile)(response, set);
|
|
127
129
|
case "ElysiaCustomStatusResponse":
|
|
128
|
-
return
|
|
130
|
+
return set.status = response.code, mapEarlyResponse(
|
|
129
131
|
response.response,
|
|
130
|
-
|
|
132
|
+
set,
|
|
131
133
|
request
|
|
132
134
|
);
|
|
133
135
|
case void 0:
|
|
134
|
-
return response ? new Response(JSON.stringify(response),
|
|
136
|
+
return response ? new Response(JSON.stringify(response), set) : void 0;
|
|
135
137
|
case "Response":
|
|
136
|
-
return handleResponse(response,
|
|
138
|
+
return handleResponse(response, set, request);
|
|
137
139
|
case "Promise":
|
|
138
140
|
return response.then(
|
|
139
|
-
(x) => mapEarlyResponse(x,
|
|
141
|
+
(x) => mapEarlyResponse(x, set)
|
|
140
142
|
);
|
|
141
143
|
case "Error":
|
|
142
|
-
return errorToResponse(response,
|
|
144
|
+
return errorToResponse(response, set);
|
|
143
145
|
case "Function":
|
|
144
|
-
return mapEarlyResponse(response(),
|
|
146
|
+
return mapEarlyResponse(response(), set);
|
|
145
147
|
case "Number":
|
|
146
148
|
case "Boolean":
|
|
147
149
|
return new Response(
|
|
148
150
|
response.toString(),
|
|
149
|
-
|
|
151
|
+
set
|
|
150
152
|
);
|
|
151
153
|
case "FormData":
|
|
152
154
|
return new Response(response);
|
|
153
155
|
case "Cookie":
|
|
154
|
-
return response instanceof import_cookies.Cookie ? new Response(response.value,
|
|
156
|
+
return response instanceof import_cookies.Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);
|
|
155
157
|
default:
|
|
156
158
|
if (response instanceof Response)
|
|
157
|
-
return handleResponse(response,
|
|
159
|
+
return handleResponse(response, set, request);
|
|
158
160
|
if (response instanceof Promise)
|
|
159
|
-
return response.then((x) => mapEarlyResponse(x,
|
|
161
|
+
return response.then((x) => mapEarlyResponse(x, set));
|
|
160
162
|
if (response instanceof Error)
|
|
161
|
-
return errorToResponse(response,
|
|
163
|
+
return errorToResponse(response, set);
|
|
162
164
|
if (response instanceof import_error.ElysiaCustomStatusResponse)
|
|
163
|
-
return
|
|
165
|
+
return set.status = response.code, mapEarlyResponse(
|
|
164
166
|
response.response,
|
|
165
|
-
|
|
167
|
+
set,
|
|
166
168
|
request
|
|
167
169
|
);
|
|
168
170
|
if (
|
|
169
171
|
// @ts-expect-error
|
|
170
172
|
typeof response?.next == "function" || response instanceof ReadableStream
|
|
171
173
|
)
|
|
172
|
-
return handleStream(response,
|
|
174
|
+
return handleStream(response, set, request);
|
|
173
175
|
if (typeof response?.then == "function")
|
|
174
|
-
return response.then(
|
|
176
|
+
return response.then(
|
|
177
|
+
(x) => mapEarlyResponse(x, set)
|
|
178
|
+
);
|
|
175
179
|
if (typeof response?.toResponse == "function")
|
|
176
|
-
return mapEarlyResponse(response.toResponse(),
|
|
180
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
177
181
|
if ("charCodeAt" in response) {
|
|
178
182
|
const code = response.charCodeAt(0);
|
|
179
183
|
if (code === 123 || code === 91)
|
|
180
|
-
return
|
|
184
|
+
return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
|
|
181
185
|
JSON.stringify(response),
|
|
182
|
-
|
|
186
|
+
set
|
|
183
187
|
);
|
|
184
188
|
}
|
|
185
|
-
return new Response(response,
|
|
189
|
+
return new Response(response, set);
|
|
186
190
|
}
|
|
187
191
|
else
|
|
188
192
|
switch (response?.constructor?.name) {
|
|
189
193
|
case "String":
|
|
190
|
-
return
|
|
194
|
+
return set.headers["content-type"] = "text/plain", new Response(response);
|
|
191
195
|
case "Array":
|
|
192
196
|
case "Object":
|
|
193
|
-
return
|
|
197
|
+
return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
|
|
194
198
|
case "ElysiaFile":
|
|
195
|
-
return handleElysiaFile(response,
|
|
199
|
+
return handleElysiaFile(response, set);
|
|
196
200
|
case "File":
|
|
197
|
-
return (0, import_utils.handleFile)(response,
|
|
201
|
+
return (0, import_utils.handleFile)(response, set);
|
|
198
202
|
case "Blob":
|
|
199
|
-
return (0, import_utils.handleFile)(response,
|
|
203
|
+
return (0, import_utils.handleFile)(response, set);
|
|
200
204
|
case "ElysiaCustomStatusResponse":
|
|
201
|
-
return
|
|
205
|
+
return set.status = response.code, mapEarlyResponse(
|
|
202
206
|
response.response,
|
|
203
|
-
|
|
207
|
+
set,
|
|
204
208
|
request
|
|
205
209
|
);
|
|
206
210
|
case void 0:
|
|
@@ -213,47 +217,49 @@ const handleElysiaFile = (file, set2 = {
|
|
|
213
217
|
return response;
|
|
214
218
|
case "Promise":
|
|
215
219
|
return response.then((x) => {
|
|
216
|
-
const r = mapEarlyResponse(x,
|
|
220
|
+
const r = mapEarlyResponse(x, set);
|
|
217
221
|
if (r !== void 0) return r;
|
|
218
222
|
});
|
|
219
223
|
case "Error":
|
|
220
|
-
return errorToResponse(response,
|
|
224
|
+
return errorToResponse(response, set);
|
|
221
225
|
case "Function":
|
|
222
226
|
return mapCompactResponse(response(), request);
|
|
223
227
|
case "Number":
|
|
224
228
|
case "Boolean":
|
|
225
229
|
return new Response(response.toString());
|
|
226
230
|
case "Cookie":
|
|
227
|
-
return response instanceof import_cookies.Cookie ? new Response(response.value,
|
|
231
|
+
return response instanceof import_cookies.Cookie ? new Response(response.value, set) : new Response(response?.toString(), set);
|
|
228
232
|
case "FormData":
|
|
229
233
|
return new Response(response);
|
|
230
234
|
default:
|
|
231
235
|
if (response instanceof Response) return response;
|
|
232
236
|
if (response instanceof Promise)
|
|
233
|
-
return response.then((x) => mapEarlyResponse(x,
|
|
237
|
+
return response.then((x) => mapEarlyResponse(x, set));
|
|
234
238
|
if (response instanceof Error)
|
|
235
|
-
return errorToResponse(response,
|
|
239
|
+
return errorToResponse(response, set);
|
|
236
240
|
if (response instanceof import_error.ElysiaCustomStatusResponse)
|
|
237
|
-
return
|
|
241
|
+
return set.status = response.code, mapEarlyResponse(
|
|
238
242
|
response.response,
|
|
239
|
-
|
|
243
|
+
set,
|
|
240
244
|
request
|
|
241
245
|
);
|
|
242
246
|
if (
|
|
243
247
|
// @ts-expect-error
|
|
244
248
|
typeof response?.next == "function" || response instanceof ReadableStream
|
|
245
249
|
)
|
|
246
|
-
return handleStream(response,
|
|
250
|
+
return handleStream(response, set, request);
|
|
247
251
|
if (typeof response?.then == "function")
|
|
248
|
-
return response.then(
|
|
252
|
+
return response.then(
|
|
253
|
+
(x) => mapEarlyResponse(x, set)
|
|
254
|
+
);
|
|
249
255
|
if (typeof response?.toResponse == "function")
|
|
250
|
-
return mapEarlyResponse(response.toResponse(),
|
|
256
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
251
257
|
if ("charCodeAt" in response) {
|
|
252
258
|
const code = response.charCodeAt(0);
|
|
253
259
|
if (code === 123 || code === 91)
|
|
254
|
-
return
|
|
260
|
+
return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
|
|
255
261
|
JSON.stringify(response),
|
|
256
|
-
|
|
262
|
+
set
|
|
257
263
|
);
|
|
258
264
|
}
|
|
259
265
|
return new Response(response);
|
|
@@ -331,7 +337,9 @@ const handleElysiaFile = (file, set2 = {
|
|
|
331
337
|
)
|
|
332
338
|
return handleStream(response, void 0, request);
|
|
333
339
|
if (typeof response?.then == "function")
|
|
334
|
-
return response.then(
|
|
340
|
+
return response.then(
|
|
341
|
+
(x) => mapCompactResponse(x, request)
|
|
342
|
+
);
|
|
335
343
|
if (typeof response?.toResponse == "function")
|
|
336
344
|
return mapCompactResponse(response.toResponse());
|
|
337
345
|
if ("charCodeAt" in response) {
|
|
@@ -345,9 +353,9 @@ const handleElysiaFile = (file, set2 = {
|
|
|
345
353
|
}
|
|
346
354
|
return new Response(response);
|
|
347
355
|
}
|
|
348
|
-
}, errorToResponse = (error,
|
|
356
|
+
}, errorToResponse = (error, set) => {
|
|
349
357
|
if (typeof error?.toResponse == "function") {
|
|
350
|
-
const raw = error.toResponse(), targetSet =
|
|
358
|
+
const raw = error.toResponse(), targetSet = set ?? { headers: {}, status: 200, redirect: "" }, apply = (resolved) => (resolved instanceof Response && (targetSet.status = resolved.status), mapResponse(resolved, targetSet));
|
|
351
359
|
return typeof raw?.then == "function" ? raw.then(apply) : apply(raw);
|
|
352
360
|
}
|
|
353
361
|
return new Response(
|
|
@@ -357,8 +365,8 @@ const handleElysiaFile = (file, set2 = {
|
|
|
357
365
|
cause: error?.cause
|
|
358
366
|
}),
|
|
359
367
|
{
|
|
360
|
-
status:
|
|
361
|
-
headers:
|
|
368
|
+
status: set?.status !== 200 ? set?.status ?? 500 : 500,
|
|
369
|
+
headers: set?.headers
|
|
362
370
|
}
|
|
363
371
|
);
|
|
364
372
|
}, createStaticHandler = (handle, hooks, setHeaders = {}) => {
|