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.
@@ -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, set2 = {
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 && (set2.headers["content-type"] = contentType), file.stats && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416 ? file.stats.then((stat) => {
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 && (set2.headers["content-range"] = `bytes 0-${size - 1}/${size}`, set2.headers["content-length"] = size), (0, import_utils.handleFile)(file.value, set2);
33
- }) : (0, import_utils.handleFile)(file.value, set2);
34
- }, mapResponse = (response, set2, request) => {
35
- if ((0, import_utils2.isNotEmpty)(set2.headers) || set2.status !== 200 || set2.cookie)
36
- switch ((0, import_utils.handleSet)(set2), response?.constructor?.name) {
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 set2.headers["content-type"] = "text/plain", new Response(response, set2);
38
+ return set.headers["content-type"] = "text/plain", new Response(response, set);
39
39
  case "Array":
40
40
  case "Object":
41
- return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
41
+ return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
42
42
  case "ElysiaFile":
43
- return handleElysiaFile(response, set2);
43
+ return handleElysiaFile(response, set);
44
44
  case "File":
45
- return (0, import_utils.handleFile)(response, set2);
45
+ return (0, import_utils.handleFile)(response, set);
46
46
  case "Blob":
47
- return (0, import_utils.handleFile)(response, set2);
47
+ return (0, import_utils.handleFile)(response, set);
48
48
  case "ElysiaCustomStatusResponse":
49
- return set2.status = response.code, mapResponse(
49
+ return set.status = response.code, mapResponse(
50
50
  response.response,
51
- set2,
51
+ set,
52
52
  request
53
53
  );
54
54
  case void 0:
55
- return response ? new Response(JSON.stringify(response), set2) : new Response("", set2);
55
+ return response ? new Response(JSON.stringify(response), set) : new Response("", set);
56
56
  case "Response":
57
- return handleResponse(response, set2, request);
57
+ return handleResponse(response, set, request);
58
58
  case "Error":
59
- return errorToResponse(response, set2);
59
+ return errorToResponse(response, set);
60
60
  case "Promise":
61
61
  return response.then(
62
- (x) => mapResponse(x, set2, request)
62
+ (x) => mapResponse(x, set, request)
63
63
  );
64
64
  case "Function":
65
- return mapResponse(response(), set2, request);
65
+ return mapResponse(response(), set, request);
66
66
  case "Number":
67
67
  case "Boolean":
68
68
  return new Response(
69
69
  response.toString(),
70
- set2
70
+ set
71
71
  );
72
72
  case "Cookie":
73
- return response instanceof import_cookies.Cookie ? new Response(response.value, set2) : new Response(response?.toString(), set2);
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, set2);
75
+ return new Response(response, set);
76
76
  default:
77
77
  if (response instanceof Response)
78
- return handleResponse(response, set2, request);
78
+ return handleResponse(response, set, request);
79
79
  if (response instanceof Promise)
80
- return response.then((x) => mapResponse(x, set2));
80
+ return response.then((x) => mapResponse(x, set));
81
81
  if (response instanceof Error)
82
- return errorToResponse(response, set2);
82
+ return errorToResponse(response, set);
83
83
  if (response instanceof import_error.ElysiaCustomStatusResponse)
84
- return set2.status = response.code, mapResponse(
84
+ return set.status = response.code, mapResponse(
85
85
  response.response,
86
- set2,
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, set2, request);
93
+ return handleStream(response, set, request);
94
94
  if (typeof response?.then == "function")
95
- return response.then((x) => mapResponse(x, set2));
95
+ return response.then(
96
+ (x) => mapResponse(x, set)
97
+ );
96
98
  if (typeof response?.toResponse == "function")
97
- return mapResponse(response.toResponse(), set2);
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 set2.headers["Content-Type"] || (set2.headers["Content-Type"] = "application/json"), new Response(
103
+ return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
102
104
  JSON.stringify(response),
103
- set2
105
+ set
104
106
  );
105
107
  }
106
- return new Response(response, set2);
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, set2, request) : mapCompactResponse(response, request)
112
+ typeof response?.next == "function" || response instanceof ReadableStream ? handleStream(response, set, request) : mapCompactResponse(response, request)
111
113
  );
112
- }, mapEarlyResponse = (response, set2, request) => {
114
+ }, mapEarlyResponse = (response, set, request) => {
113
115
  if (response != null)
114
- if ((0, import_utils2.isNotEmpty)(set2.headers) || set2.status !== 200 || set2.cookie)
115
- switch ((0, import_utils.handleSet)(set2), response?.constructor?.name) {
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 set2.headers["content-type"] = "text/plain", new Response(response, set2);
119
+ return set.headers["content-type"] = "text/plain", new Response(response, set);
118
120
  case "Array":
119
121
  case "Object":
120
- return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
122
+ return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
121
123
  case "ElysiaFile":
122
- return handleElysiaFile(response, set2);
124
+ return handleElysiaFile(response, set);
123
125
  case "File":
124
- return (0, import_utils.handleFile)(response, set2);
126
+ return (0, import_utils.handleFile)(response, set);
125
127
  case "Blob":
126
- return (0, import_utils.handleFile)(response, set2);
128
+ return (0, import_utils.handleFile)(response, set);
127
129
  case "ElysiaCustomStatusResponse":
128
- return set2.status = response.code, mapEarlyResponse(
130
+ return set.status = response.code, mapEarlyResponse(
129
131
  response.response,
130
- set2,
132
+ set,
131
133
  request
132
134
  );
133
135
  case void 0:
134
- return response ? new Response(JSON.stringify(response), set2) : void 0;
136
+ return response ? new Response(JSON.stringify(response), set) : void 0;
135
137
  case "Response":
136
- return handleResponse(response, set2, request);
138
+ return handleResponse(response, set, request);
137
139
  case "Promise":
138
140
  return response.then(
139
- (x) => mapEarlyResponse(x, set2)
141
+ (x) => mapEarlyResponse(x, set)
140
142
  );
141
143
  case "Error":
142
- return errorToResponse(response, set2);
144
+ return errorToResponse(response, set);
143
145
  case "Function":
144
- return mapEarlyResponse(response(), set2);
146
+ return mapEarlyResponse(response(), set);
145
147
  case "Number":
146
148
  case "Boolean":
147
149
  return new Response(
148
150
  response.toString(),
149
- set2
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, set2) : new Response(response?.toString(), set2);
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, set2, request);
159
+ return handleResponse(response, set, request);
158
160
  if (response instanceof Promise)
159
- return response.then((x) => mapEarlyResponse(x, set2));
161
+ return response.then((x) => mapEarlyResponse(x, set));
160
162
  if (response instanceof Error)
161
- return errorToResponse(response, set2);
163
+ return errorToResponse(response, set);
162
164
  if (response instanceof import_error.ElysiaCustomStatusResponse)
163
- return set2.status = response.code, mapEarlyResponse(
165
+ return set.status = response.code, mapEarlyResponse(
164
166
  response.response,
165
- set2,
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, set2, request);
174
+ return handleStream(response, set, request);
173
175
  if (typeof response?.then == "function")
174
- return response.then((x) => mapEarlyResponse(x, set2));
176
+ return response.then(
177
+ (x) => mapEarlyResponse(x, set)
178
+ );
175
179
  if (typeof response?.toResponse == "function")
176
- return mapEarlyResponse(response.toResponse(), set2);
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 set2.headers["Content-Type"] || (set2.headers["Content-Type"] = "application/json"), new Response(
184
+ return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
181
185
  JSON.stringify(response),
182
- set2
186
+ set
183
187
  );
184
188
  }
185
- return new Response(response, set2);
189
+ return new Response(response, set);
186
190
  }
187
191
  else
188
192
  switch (response?.constructor?.name) {
189
193
  case "String":
190
- return set2.headers["content-type"] = "text/plain", new Response(response);
194
+ return set.headers["content-type"] = "text/plain", new Response(response);
191
195
  case "Array":
192
196
  case "Object":
193
- return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
197
+ return set.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set);
194
198
  case "ElysiaFile":
195
- return handleElysiaFile(response, set2);
199
+ return handleElysiaFile(response, set);
196
200
  case "File":
197
- return (0, import_utils.handleFile)(response, set2);
201
+ return (0, import_utils.handleFile)(response, set);
198
202
  case "Blob":
199
- return (0, import_utils.handleFile)(response, set2);
203
+ return (0, import_utils.handleFile)(response, set);
200
204
  case "ElysiaCustomStatusResponse":
201
- return set2.status = response.code, mapEarlyResponse(
205
+ return set.status = response.code, mapEarlyResponse(
202
206
  response.response,
203
- set2,
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, set2);
220
+ const r = mapEarlyResponse(x, set);
217
221
  if (r !== void 0) return r;
218
222
  });
219
223
  case "Error":
220
- return errorToResponse(response, set2);
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, set2) : new Response(response?.toString(), set2);
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, set2));
237
+ return response.then((x) => mapEarlyResponse(x, set));
234
238
  if (response instanceof Error)
235
- return errorToResponse(response, set2);
239
+ return errorToResponse(response, set);
236
240
  if (response instanceof import_error.ElysiaCustomStatusResponse)
237
- return set2.status = response.code, mapEarlyResponse(
241
+ return set.status = response.code, mapEarlyResponse(
238
242
  response.response,
239
- set2,
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, set2, request);
250
+ return handleStream(response, set, request);
247
251
  if (typeof response?.then == "function")
248
- return response.then((x) => mapEarlyResponse(x, set2));
252
+ return response.then(
253
+ (x) => mapEarlyResponse(x, set)
254
+ );
249
255
  if (typeof response?.toResponse == "function")
250
- return mapEarlyResponse(response.toResponse(), set2);
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 set2.headers["Content-Type"] || (set2.headers["Content-Type"] = "application/json"), new Response(
260
+ return set.headers["Content-Type"] || (set.headers["Content-Type"] = "application/json"), new Response(
255
261
  JSON.stringify(response),
256
- set2
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((x) => mapResponse(x, set));
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, set2) => {
356
+ }, errorToResponse = (error, set) => {
349
357
  if (typeof error?.toResponse == "function") {
350
- const raw = error.toResponse(), targetSet = set2 ?? { headers: {}, status: 200, redirect: "" }, apply = (resolved) => (resolved instanceof Response && (targetSet.status = resolved.status), mapResponse(resolved, 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: set2?.status !== 200 ? set2?.status ?? 500 : 500,
361
- headers: set2?.headers
368
+ status: set?.status !== 200 ? set?.status ?? 500 : 500,
369
+ headers: set?.headers
362
370
  }
363
371
  );
364
372
  }, createStaticHandler = (handle, hooks, setHeaders = {}) => {