elysia 1.0.21 → 1.0.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/bun/index.d.ts +1 -1
- package/dist/bun/index.js +108 -108
- package/dist/bun/index.js.map +6 -6
- package/dist/cjs/compose.js +107 -25
- package/dist/cjs/cookies.js +3 -2
- package/dist/cjs/dynamic-handle.js +113 -31
- package/dist/cjs/error.js +3 -2
- package/dist/cjs/handler.js +107 -20
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +118 -32
- package/dist/cjs/type-system.js +3 -2
- package/dist/cjs/types.d.ts +11 -4
- package/dist/cjs/utils.d.ts +14 -2
- package/dist/cjs/utils.js +24 -7
- package/dist/cjs/ws/index.js +3 -2
- package/dist/compose.mjs +107 -25
- package/dist/cookies.mjs +3 -2
- package/dist/dynamic-handle.mjs +113 -31
- package/dist/error.mjs +3 -2
- package/dist/handler.mjs +107 -20
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +117 -32
- package/dist/type-system.mjs +3 -2
- package/dist/types.d.ts +11 -4
- package/dist/utils.d.ts +14 -2
- package/dist/utils.mjs +22 -7
- package/dist/ws/index.mjs +3 -2
- package/package.json +2 -1
- package/tsconfig.test.tsbuildinfo +1 -1
package/dist/cjs/utils.js
CHANGED
|
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/utils.ts
|
|
31
31
|
var utils_exports = {};
|
|
32
32
|
__export(utils_exports, {
|
|
33
|
+
ELYSIA_FORM_DATA: () => ELYSIA_FORM_DATA,
|
|
33
34
|
InvertedStatusMap: () => InvertedStatusMap,
|
|
34
35
|
PromiseGroup: () => PromiseGroup,
|
|
35
36
|
StatusMap: () => StatusMap,
|
|
@@ -39,6 +40,7 @@ __export(utils_exports, {
|
|
|
39
40
|
createMacroManager: () => createMacroManager,
|
|
40
41
|
filterGlobalHook: () => filterGlobalHook,
|
|
41
42
|
fnToContainer: () => fnToContainer,
|
|
43
|
+
form: () => form,
|
|
42
44
|
getCookieValidator: () => getCookieValidator,
|
|
43
45
|
getResponseSchemaValidator: () => getResponseSchemaValidator,
|
|
44
46
|
getSchemaValidator: () => getSchemaValidator,
|
|
@@ -387,7 +389,7 @@ var validateFile = (options, value) => {
|
|
|
387
389
|
}
|
|
388
390
|
return true;
|
|
389
391
|
};
|
|
390
|
-
var
|
|
392
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
391
393
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
392
394
|
"Files",
|
|
393
395
|
(options, value) => {
|
|
@@ -533,7 +535,7 @@ var ElysiaType = {
|
|
|
533
535
|
return JSON.stringify(value);
|
|
534
536
|
});
|
|
535
537
|
},
|
|
536
|
-
File,
|
|
538
|
+
File: File2,
|
|
537
539
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
538
540
|
if (Array.isArray(value))
|
|
539
541
|
return value;
|
|
@@ -1283,14 +1285,28 @@ var cloneInference = (inference) => ({
|
|
|
1283
1285
|
set: inference.trace.set
|
|
1284
1286
|
}
|
|
1285
1287
|
});
|
|
1286
|
-
var redirect = (url, status = 301) =>
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1288
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
1289
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
1290
|
+
var form = (items) => {
|
|
1291
|
+
const formData = new FormData();
|
|
1292
|
+
for (const [key, value] of Object.entries(items)) {
|
|
1293
|
+
if (Array.isArray(value)) {
|
|
1294
|
+
for (const v of value) {
|
|
1295
|
+
if (value instanceof File)
|
|
1296
|
+
formData.append(key, value, value.name);
|
|
1297
|
+
formData.append(key, v);
|
|
1298
|
+
}
|
|
1299
|
+
continue;
|
|
1300
|
+
}
|
|
1301
|
+
if (value instanceof File)
|
|
1302
|
+
formData.append(key, value, value.name);
|
|
1303
|
+
formData.append(key, value);
|
|
1290
1304
|
}
|
|
1291
|
-
|
|
1305
|
+
return formData;
|
|
1306
|
+
};
|
|
1292
1307
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1293
1308
|
0 && (module.exports = {
|
|
1309
|
+
ELYSIA_FORM_DATA,
|
|
1294
1310
|
InvertedStatusMap,
|
|
1295
1311
|
PromiseGroup,
|
|
1296
1312
|
StatusMap,
|
|
@@ -1300,6 +1316,7 @@ var redirect = (url, status = 301) => new Response(null, {
|
|
|
1300
1316
|
createMacroManager,
|
|
1301
1317
|
filterGlobalHook,
|
|
1302
1318
|
fnToContainer,
|
|
1319
|
+
form,
|
|
1303
1320
|
getCookieValidator,
|
|
1304
1321
|
getResponseSchemaValidator,
|
|
1305
1322
|
getSchemaValidator,
|
package/dist/cjs/ws/index.js
CHANGED
|
@@ -269,7 +269,7 @@ var validateFile = (options, value) => {
|
|
|
269
269
|
}
|
|
270
270
|
return true;
|
|
271
271
|
};
|
|
272
|
-
var
|
|
272
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
273
273
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
274
274
|
"Files",
|
|
275
275
|
(options, value) => {
|
|
@@ -415,7 +415,7 @@ var ElysiaType = {
|
|
|
415
415
|
return JSON.stringify(value);
|
|
416
416
|
});
|
|
417
417
|
},
|
|
418
|
-
File,
|
|
418
|
+
File: File2,
|
|
419
419
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
420
420
|
if (Array.isArray(value))
|
|
421
421
|
return value;
|
|
@@ -577,6 +577,7 @@ var InvertedStatusMap = Object.fromEntries(
|
|
|
577
577
|
Object.entries(StatusMap).map(([k, v]) => [v, k])
|
|
578
578
|
);
|
|
579
579
|
var encoder = new TextEncoder();
|
|
580
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
580
581
|
|
|
581
582
|
// src/error.ts
|
|
582
583
|
var env = typeof Bun !== "undefined" ? Bun.env : typeof process !== "undefined" ? process?.env : void 0;
|
package/dist/compose.mjs
CHANGED
|
@@ -833,9 +833,21 @@ var mapResponse = (response, set, request) => {
|
|
|
833
833
|
return new Response(response, set);
|
|
834
834
|
case "Blob":
|
|
835
835
|
return handleFile(response, set);
|
|
836
|
-
case "Object":
|
|
837
836
|
case "Array":
|
|
838
837
|
return Response.json(response, set);
|
|
838
|
+
case "Object":
|
|
839
|
+
for (const value in Object.values(response)) {
|
|
840
|
+
switch (value?.constructor?.name) {
|
|
841
|
+
case "Blob":
|
|
842
|
+
case "File":
|
|
843
|
+
case "ArrayBuffer":
|
|
844
|
+
case "FileRef":
|
|
845
|
+
return new Response(form(response));
|
|
846
|
+
default:
|
|
847
|
+
break;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
return Response.json(response, set);
|
|
839
851
|
case "ReadableStream":
|
|
840
852
|
if (!set.headers["content-type"]?.startsWith(
|
|
841
853
|
"text/event-stream"
|
|
@@ -909,6 +921,8 @@ var mapResponse = (response, set, request) => {
|
|
|
909
921
|
if (response instanceof Cookie)
|
|
910
922
|
return new Response(response.value, set);
|
|
911
923
|
return new Response(response?.toString(), set);
|
|
924
|
+
case "FormData":
|
|
925
|
+
return new Response(response, set);
|
|
912
926
|
default:
|
|
913
927
|
if (response instanceof Response) {
|
|
914
928
|
let isCookieSet2 = false;
|
|
@@ -968,13 +982,24 @@ var mapResponse = (response, set, request) => {
|
|
|
968
982
|
return new Response(response);
|
|
969
983
|
case "Blob":
|
|
970
984
|
return handleFile(response, set);
|
|
971
|
-
case "Object":
|
|
972
985
|
case "Array":
|
|
973
|
-
return
|
|
974
|
-
|
|
975
|
-
|
|
986
|
+
return Response.json(response);
|
|
987
|
+
case "Object":
|
|
988
|
+
for (const value in Object.values(response)) {
|
|
989
|
+
switch (value?.constructor?.name) {
|
|
990
|
+
case "Blob":
|
|
991
|
+
case "File":
|
|
992
|
+
case "ArrayBuffer":
|
|
993
|
+
case "FileRef":
|
|
994
|
+
return new Response(
|
|
995
|
+
form(response),
|
|
996
|
+
set
|
|
997
|
+
);
|
|
998
|
+
default:
|
|
999
|
+
break;
|
|
976
1000
|
}
|
|
977
|
-
}
|
|
1001
|
+
}
|
|
1002
|
+
return Response.json(response, set);
|
|
978
1003
|
case "ReadableStream":
|
|
979
1004
|
request?.signal.addEventListener(
|
|
980
1005
|
"abort",
|
|
@@ -1021,6 +1046,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1021
1046
|
if (response instanceof Cookie)
|
|
1022
1047
|
return new Response(response.value, set);
|
|
1023
1048
|
return new Response(response?.toString(), set);
|
|
1049
|
+
case "FormData":
|
|
1050
|
+
return new Response(response, set);
|
|
1024
1051
|
default:
|
|
1025
1052
|
if (response instanceof Response)
|
|
1026
1053
|
return new Response(response.body, {
|
|
@@ -1075,9 +1102,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1075
1102
|
return new Response(response, set);
|
|
1076
1103
|
case "Blob":
|
|
1077
1104
|
return handleFile(response, set);
|
|
1078
|
-
case "Object":
|
|
1079
1105
|
case "Array":
|
|
1080
1106
|
return Response.json(response, set);
|
|
1107
|
+
case "Object":
|
|
1108
|
+
for (const value in Object.values(response)) {
|
|
1109
|
+
switch (value?.constructor?.name) {
|
|
1110
|
+
case "Blob":
|
|
1111
|
+
case "File":
|
|
1112
|
+
case "ArrayBuffer":
|
|
1113
|
+
case "FileRef":
|
|
1114
|
+
return new Response(
|
|
1115
|
+
form(response),
|
|
1116
|
+
set
|
|
1117
|
+
);
|
|
1118
|
+
default:
|
|
1119
|
+
break;
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
return Response.json(response, set);
|
|
1081
1123
|
case "ReadableStream":
|
|
1082
1124
|
if (!set.headers["content-type"]?.startsWith(
|
|
1083
1125
|
"text/event-stream"
|
|
@@ -1149,6 +1191,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1149
1191
|
response.toString(),
|
|
1150
1192
|
set
|
|
1151
1193
|
);
|
|
1194
|
+
case "FormData":
|
|
1195
|
+
return new Response(response);
|
|
1152
1196
|
case "Cookie":
|
|
1153
1197
|
if (response instanceof Cookie)
|
|
1154
1198
|
return new Response(response.value, set);
|
|
@@ -1208,13 +1252,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1208
1252
|
return new Response(response);
|
|
1209
1253
|
case "Blob":
|
|
1210
1254
|
return handleFile(response, set);
|
|
1211
|
-
case "Object":
|
|
1212
1255
|
case "Array":
|
|
1213
|
-
return
|
|
1214
|
-
|
|
1215
|
-
|
|
1256
|
+
return Response.json(response);
|
|
1257
|
+
case "Object":
|
|
1258
|
+
for (const value in Object.values(response)) {
|
|
1259
|
+
switch (value?.constructor?.name) {
|
|
1260
|
+
case "Blob":
|
|
1261
|
+
case "File":
|
|
1262
|
+
case "ArrayBuffer":
|
|
1263
|
+
case "FileRef":
|
|
1264
|
+
return new Response(
|
|
1265
|
+
form(response),
|
|
1266
|
+
set
|
|
1267
|
+
);
|
|
1268
|
+
default:
|
|
1269
|
+
break;
|
|
1216
1270
|
}
|
|
1217
|
-
}
|
|
1271
|
+
}
|
|
1272
|
+
return Response.json(response, set);
|
|
1218
1273
|
case "ReadableStream":
|
|
1219
1274
|
request?.signal.addEventListener(
|
|
1220
1275
|
"abort",
|
|
@@ -1260,6 +1315,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1260
1315
|
if (response instanceof Cookie)
|
|
1261
1316
|
return new Response(response.value, set);
|
|
1262
1317
|
return new Response(response?.toString(), set);
|
|
1318
|
+
case "FormData":
|
|
1319
|
+
return new Response(response);
|
|
1263
1320
|
default:
|
|
1264
1321
|
if (response instanceof Response)
|
|
1265
1322
|
return new Response(response.body, {
|
|
@@ -1299,13 +1356,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1299
1356
|
return new Response(response);
|
|
1300
1357
|
case "Blob":
|
|
1301
1358
|
return handleFile(response);
|
|
1302
|
-
case "Object":
|
|
1303
1359
|
case "Array":
|
|
1304
|
-
return
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1360
|
+
return Response.json(response);
|
|
1361
|
+
case "Object":
|
|
1362
|
+
form:
|
|
1363
|
+
for (const value of Object.values(response))
|
|
1364
|
+
switch (value?.constructor?.name) {
|
|
1365
|
+
case "Blob":
|
|
1366
|
+
case "File":
|
|
1367
|
+
case "ArrayBuffer":
|
|
1368
|
+
case "FileRef":
|
|
1369
|
+
return new Response(form(response));
|
|
1370
|
+
case "Object":
|
|
1371
|
+
break form;
|
|
1372
|
+
default:
|
|
1373
|
+
break;
|
|
1374
|
+
}
|
|
1375
|
+
return Response.json(response);
|
|
1309
1376
|
case "ReadableStream":
|
|
1310
1377
|
request?.signal.addEventListener(
|
|
1311
1378
|
"abort",
|
|
@@ -1345,6 +1412,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1345
1412
|
case "Number":
|
|
1346
1413
|
case "Boolean":
|
|
1347
1414
|
return new Response(response.toString());
|
|
1415
|
+
case "FormData":
|
|
1416
|
+
return new Response(response);
|
|
1348
1417
|
default:
|
|
1349
1418
|
if (response instanceof Response)
|
|
1350
1419
|
return new Response(response.body, {
|
|
@@ -1594,7 +1663,7 @@ var validateFile = (options, value) => {
|
|
|
1594
1663
|
}
|
|
1595
1664
|
return true;
|
|
1596
1665
|
};
|
|
1597
|
-
var
|
|
1666
|
+
var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
|
|
1598
1667
|
var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
|
|
1599
1668
|
"Files",
|
|
1600
1669
|
(options, value) => {
|
|
@@ -1740,7 +1809,7 @@ var ElysiaType = {
|
|
|
1740
1809
|
return JSON.stringify(value);
|
|
1741
1810
|
});
|
|
1742
1811
|
},
|
|
1743
|
-
File,
|
|
1812
|
+
File: File2,
|
|
1744
1813
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
1745
1814
|
if (Array.isArray(value))
|
|
1746
1815
|
return value;
|
|
@@ -2065,12 +2134,25 @@ var lifeCycleToFn = (a) => {
|
|
|
2065
2134
|
stop: a.stop?.map((x) => x.fn)
|
|
2066
2135
|
};
|
|
2067
2136
|
};
|
|
2068
|
-
var redirect = (url, status = 301) =>
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2137
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
2138
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
2139
|
+
var form = (items) => {
|
|
2140
|
+
const formData = new FormData();
|
|
2141
|
+
for (const [key, value] of Object.entries(items)) {
|
|
2142
|
+
if (Array.isArray(value)) {
|
|
2143
|
+
for (const v of value) {
|
|
2144
|
+
if (value instanceof File)
|
|
2145
|
+
formData.append(key, value, value.name);
|
|
2146
|
+
formData.append(key, v);
|
|
2147
|
+
}
|
|
2148
|
+
continue;
|
|
2149
|
+
}
|
|
2150
|
+
if (value instanceof File)
|
|
2151
|
+
formData.append(key, value, value.name);
|
|
2152
|
+
formData.append(key, value);
|
|
2072
2153
|
}
|
|
2073
|
-
|
|
2154
|
+
return formData;
|
|
2155
|
+
};
|
|
2074
2156
|
|
|
2075
2157
|
// src/compose.ts
|
|
2076
2158
|
var headersHasToJSON = new Headers().toJSON;
|
package/dist/cookies.mjs
CHANGED
|
@@ -336,7 +336,7 @@ var validateFile = (options, value) => {
|
|
|
336
336
|
}
|
|
337
337
|
return true;
|
|
338
338
|
};
|
|
339
|
-
var
|
|
339
|
+
var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
|
|
340
340
|
var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
|
|
341
341
|
"Files",
|
|
342
342
|
(options, value) => {
|
|
@@ -482,7 +482,7 @@ var ElysiaType = {
|
|
|
482
482
|
return JSON.stringify(value);
|
|
483
483
|
});
|
|
484
484
|
},
|
|
485
|
-
File,
|
|
485
|
+
File: File2,
|
|
486
486
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
487
487
|
if (Array.isArray(value))
|
|
488
488
|
return value;
|
|
@@ -689,6 +689,7 @@ var isNumericString = (message) => {
|
|
|
689
689
|
}
|
|
690
690
|
return false;
|
|
691
691
|
};
|
|
692
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
692
693
|
|
|
693
694
|
// src/cookies.ts
|
|
694
695
|
var Cookie = class {
|
package/dist/dynamic-handle.mjs
CHANGED
|
@@ -542,7 +542,7 @@ var validateFile = (options, value) => {
|
|
|
542
542
|
}
|
|
543
543
|
return true;
|
|
544
544
|
};
|
|
545
|
-
var
|
|
545
|
+
var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
|
|
546
546
|
var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
|
|
547
547
|
"Files",
|
|
548
548
|
(options, value) => {
|
|
@@ -688,7 +688,7 @@ var ElysiaType = {
|
|
|
688
688
|
return JSON.stringify(value);
|
|
689
689
|
});
|
|
690
690
|
},
|
|
691
|
-
File,
|
|
691
|
+
File: File2,
|
|
692
692
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
693
693
|
if (Array.isArray(value))
|
|
694
694
|
return value;
|
|
@@ -895,12 +895,25 @@ var isNumericString = (message) => {
|
|
|
895
895
|
}
|
|
896
896
|
return false;
|
|
897
897
|
};
|
|
898
|
-
var redirect = (url, status = 301) =>
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
898
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
899
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
900
|
+
var form = (items) => {
|
|
901
|
+
const formData = new FormData();
|
|
902
|
+
for (const [key, value] of Object.entries(items)) {
|
|
903
|
+
if (Array.isArray(value)) {
|
|
904
|
+
for (const v of value) {
|
|
905
|
+
if (value instanceof File)
|
|
906
|
+
formData.append(key, value, value.name);
|
|
907
|
+
formData.append(key, v);
|
|
908
|
+
}
|
|
909
|
+
continue;
|
|
910
|
+
}
|
|
911
|
+
if (value instanceof File)
|
|
912
|
+
formData.append(key, value, value.name);
|
|
913
|
+
formData.append(key, value);
|
|
902
914
|
}
|
|
903
|
-
|
|
915
|
+
return formData;
|
|
916
|
+
};
|
|
904
917
|
|
|
905
918
|
// src/handler.ts
|
|
906
919
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
@@ -1008,9 +1021,21 @@ var mapResponse = (response, set, request) => {
|
|
|
1008
1021
|
return new Response(response, set);
|
|
1009
1022
|
case "Blob":
|
|
1010
1023
|
return handleFile(response, set);
|
|
1011
|
-
case "Object":
|
|
1012
1024
|
case "Array":
|
|
1013
1025
|
return Response.json(response, set);
|
|
1026
|
+
case "Object":
|
|
1027
|
+
for (const value in Object.values(response)) {
|
|
1028
|
+
switch (value?.constructor?.name) {
|
|
1029
|
+
case "Blob":
|
|
1030
|
+
case "File":
|
|
1031
|
+
case "ArrayBuffer":
|
|
1032
|
+
case "FileRef":
|
|
1033
|
+
return new Response(form(response));
|
|
1034
|
+
default:
|
|
1035
|
+
break;
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
return Response.json(response, set);
|
|
1014
1039
|
case "ReadableStream":
|
|
1015
1040
|
if (!set.headers["content-type"]?.startsWith(
|
|
1016
1041
|
"text/event-stream"
|
|
@@ -1084,6 +1109,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1084
1109
|
if (response instanceof Cookie)
|
|
1085
1110
|
return new Response(response.value, set);
|
|
1086
1111
|
return new Response(response?.toString(), set);
|
|
1112
|
+
case "FormData":
|
|
1113
|
+
return new Response(response, set);
|
|
1087
1114
|
default:
|
|
1088
1115
|
if (response instanceof Response) {
|
|
1089
1116
|
let isCookieSet2 = false;
|
|
@@ -1143,13 +1170,24 @@ var mapResponse = (response, set, request) => {
|
|
|
1143
1170
|
return new Response(response);
|
|
1144
1171
|
case "Blob":
|
|
1145
1172
|
return handleFile(response, set);
|
|
1146
|
-
case "Object":
|
|
1147
1173
|
case "Array":
|
|
1148
|
-
return
|
|
1149
|
-
|
|
1150
|
-
|
|
1174
|
+
return Response.json(response);
|
|
1175
|
+
case "Object":
|
|
1176
|
+
for (const value in Object.values(response)) {
|
|
1177
|
+
switch (value?.constructor?.name) {
|
|
1178
|
+
case "Blob":
|
|
1179
|
+
case "File":
|
|
1180
|
+
case "ArrayBuffer":
|
|
1181
|
+
case "FileRef":
|
|
1182
|
+
return new Response(
|
|
1183
|
+
form(response),
|
|
1184
|
+
set
|
|
1185
|
+
);
|
|
1186
|
+
default:
|
|
1187
|
+
break;
|
|
1151
1188
|
}
|
|
1152
|
-
}
|
|
1189
|
+
}
|
|
1190
|
+
return Response.json(response, set);
|
|
1153
1191
|
case "ReadableStream":
|
|
1154
1192
|
request?.signal.addEventListener(
|
|
1155
1193
|
"abort",
|
|
@@ -1196,6 +1234,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1196
1234
|
if (response instanceof Cookie)
|
|
1197
1235
|
return new Response(response.value, set);
|
|
1198
1236
|
return new Response(response?.toString(), set);
|
|
1237
|
+
case "FormData":
|
|
1238
|
+
return new Response(response, set);
|
|
1199
1239
|
default:
|
|
1200
1240
|
if (response instanceof Response)
|
|
1201
1241
|
return new Response(response.body, {
|
|
@@ -1250,9 +1290,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1250
1290
|
return new Response(response, set);
|
|
1251
1291
|
case "Blob":
|
|
1252
1292
|
return handleFile(response, set);
|
|
1253
|
-
case "Object":
|
|
1254
1293
|
case "Array":
|
|
1255
1294
|
return Response.json(response, set);
|
|
1295
|
+
case "Object":
|
|
1296
|
+
for (const value in Object.values(response)) {
|
|
1297
|
+
switch (value?.constructor?.name) {
|
|
1298
|
+
case "Blob":
|
|
1299
|
+
case "File":
|
|
1300
|
+
case "ArrayBuffer":
|
|
1301
|
+
case "FileRef":
|
|
1302
|
+
return new Response(
|
|
1303
|
+
form(response),
|
|
1304
|
+
set
|
|
1305
|
+
);
|
|
1306
|
+
default:
|
|
1307
|
+
break;
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
return Response.json(response, set);
|
|
1256
1311
|
case "ReadableStream":
|
|
1257
1312
|
if (!set.headers["content-type"]?.startsWith(
|
|
1258
1313
|
"text/event-stream"
|
|
@@ -1324,6 +1379,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1324
1379
|
response.toString(),
|
|
1325
1380
|
set
|
|
1326
1381
|
);
|
|
1382
|
+
case "FormData":
|
|
1383
|
+
return new Response(response);
|
|
1327
1384
|
case "Cookie":
|
|
1328
1385
|
if (response instanceof Cookie)
|
|
1329
1386
|
return new Response(response.value, set);
|
|
@@ -1383,13 +1440,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1383
1440
|
return new Response(response);
|
|
1384
1441
|
case "Blob":
|
|
1385
1442
|
return handleFile(response, set);
|
|
1386
|
-
case "Object":
|
|
1387
1443
|
case "Array":
|
|
1388
|
-
return
|
|
1389
|
-
|
|
1390
|
-
|
|
1444
|
+
return Response.json(response);
|
|
1445
|
+
case "Object":
|
|
1446
|
+
for (const value in Object.values(response)) {
|
|
1447
|
+
switch (value?.constructor?.name) {
|
|
1448
|
+
case "Blob":
|
|
1449
|
+
case "File":
|
|
1450
|
+
case "ArrayBuffer":
|
|
1451
|
+
case "FileRef":
|
|
1452
|
+
return new Response(
|
|
1453
|
+
form(response),
|
|
1454
|
+
set
|
|
1455
|
+
);
|
|
1456
|
+
default:
|
|
1457
|
+
break;
|
|
1391
1458
|
}
|
|
1392
|
-
}
|
|
1459
|
+
}
|
|
1460
|
+
return Response.json(response, set);
|
|
1393
1461
|
case "ReadableStream":
|
|
1394
1462
|
request?.signal.addEventListener(
|
|
1395
1463
|
"abort",
|
|
@@ -1435,6 +1503,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1435
1503
|
if (response instanceof Cookie)
|
|
1436
1504
|
return new Response(response.value, set);
|
|
1437
1505
|
return new Response(response?.toString(), set);
|
|
1506
|
+
case "FormData":
|
|
1507
|
+
return new Response(response);
|
|
1438
1508
|
default:
|
|
1439
1509
|
if (response instanceof Response)
|
|
1440
1510
|
return new Response(response.body, {
|
|
@@ -1474,13 +1544,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1474
1544
|
return new Response(response);
|
|
1475
1545
|
case "Blob":
|
|
1476
1546
|
return handleFile(response);
|
|
1477
|
-
case "Object":
|
|
1478
1547
|
case "Array":
|
|
1479
|
-
return
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1548
|
+
return Response.json(response);
|
|
1549
|
+
case "Object":
|
|
1550
|
+
form:
|
|
1551
|
+
for (const value of Object.values(response))
|
|
1552
|
+
switch (value?.constructor?.name) {
|
|
1553
|
+
case "Blob":
|
|
1554
|
+
case "File":
|
|
1555
|
+
case "ArrayBuffer":
|
|
1556
|
+
case "FileRef":
|
|
1557
|
+
return new Response(form(response));
|
|
1558
|
+
case "Object":
|
|
1559
|
+
break form;
|
|
1560
|
+
default:
|
|
1561
|
+
break;
|
|
1562
|
+
}
|
|
1563
|
+
return Response.json(response);
|
|
1484
1564
|
case "ReadableStream":
|
|
1485
1565
|
request?.signal.addEventListener(
|
|
1486
1566
|
"abort",
|
|
@@ -1520,6 +1600,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1520
1600
|
case "Number":
|
|
1521
1601
|
case "Boolean":
|
|
1522
1602
|
return new Response(response.toString());
|
|
1603
|
+
case "FormData":
|
|
1604
|
+
return new Response(response);
|
|
1523
1605
|
default:
|
|
1524
1606
|
if (response instanceof Response)
|
|
1525
1607
|
return new Response(response.body, {
|
|
@@ -1611,11 +1693,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1611
1693
|
break;
|
|
1612
1694
|
case "multipart/form-data":
|
|
1613
1695
|
body = {};
|
|
1614
|
-
const
|
|
1615
|
-
for (const key of
|
|
1696
|
+
const form2 = await request.formData();
|
|
1697
|
+
for (const key of form2.keys()) {
|
|
1616
1698
|
if (body[key])
|
|
1617
1699
|
continue;
|
|
1618
|
-
const value =
|
|
1700
|
+
const value = form2.getAll(key);
|
|
1619
1701
|
if (value.length === 1)
|
|
1620
1702
|
body[key] = value[0];
|
|
1621
1703
|
else
|
|
@@ -1657,11 +1739,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1657
1739
|
break;
|
|
1658
1740
|
case "multipart/form-data":
|
|
1659
1741
|
body = {};
|
|
1660
|
-
const
|
|
1661
|
-
for (const key of
|
|
1742
|
+
const form2 = await request.formData();
|
|
1743
|
+
for (const key of form2.keys()) {
|
|
1662
1744
|
if (body[key])
|
|
1663
1745
|
continue;
|
|
1664
|
-
const value =
|
|
1746
|
+
const value = form2.getAll(key);
|
|
1665
1747
|
if (value.length === 1)
|
|
1666
1748
|
body[key] = value[0];
|
|
1667
1749
|
else
|
package/dist/error.mjs
CHANGED
|
@@ -242,7 +242,7 @@ var validateFile = (options, value) => {
|
|
|
242
242
|
}
|
|
243
243
|
return true;
|
|
244
244
|
};
|
|
245
|
-
var
|
|
245
|
+
var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
|
|
246
246
|
var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
|
|
247
247
|
"Files",
|
|
248
248
|
(options, value) => {
|
|
@@ -388,7 +388,7 @@ var ElysiaType = {
|
|
|
388
388
|
return JSON.stringify(value);
|
|
389
389
|
});
|
|
390
390
|
},
|
|
391
|
-
File,
|
|
391
|
+
File: File2,
|
|
392
392
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
393
393
|
if (Array.isArray(value))
|
|
394
394
|
return value;
|
|
@@ -550,6 +550,7 @@ var InvertedStatusMap = Object.fromEntries(
|
|
|
550
550
|
Object.entries(StatusMap).map(([k, v]) => [v, k])
|
|
551
551
|
);
|
|
552
552
|
var encoder = new TextEncoder();
|
|
553
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
553
554
|
|
|
554
555
|
// src/error.ts
|
|
555
556
|
var env = typeof Bun !== "undefined" ? Bun.env : typeof process !== "undefined" ? process?.env : void 0;
|