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/compose.js
CHANGED
|
@@ -875,9 +875,21 @@ var mapResponse = (response, set, request) => {
|
|
|
875
875
|
return new Response(response, set);
|
|
876
876
|
case "Blob":
|
|
877
877
|
return handleFile(response, set);
|
|
878
|
-
case "Object":
|
|
879
878
|
case "Array":
|
|
880
879
|
return Response.json(response, set);
|
|
880
|
+
case "Object":
|
|
881
|
+
for (const value in Object.values(response)) {
|
|
882
|
+
switch (value?.constructor?.name) {
|
|
883
|
+
case "Blob":
|
|
884
|
+
case "File":
|
|
885
|
+
case "ArrayBuffer":
|
|
886
|
+
case "FileRef":
|
|
887
|
+
return new Response(form(response));
|
|
888
|
+
default:
|
|
889
|
+
break;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
return Response.json(response, set);
|
|
881
893
|
case "ReadableStream":
|
|
882
894
|
if (!set.headers["content-type"]?.startsWith(
|
|
883
895
|
"text/event-stream"
|
|
@@ -951,6 +963,8 @@ var mapResponse = (response, set, request) => {
|
|
|
951
963
|
if (response instanceof Cookie)
|
|
952
964
|
return new Response(response.value, set);
|
|
953
965
|
return new Response(response?.toString(), set);
|
|
966
|
+
case "FormData":
|
|
967
|
+
return new Response(response, set);
|
|
954
968
|
default:
|
|
955
969
|
if (response instanceof Response) {
|
|
956
970
|
let isCookieSet2 = false;
|
|
@@ -1010,13 +1024,24 @@ var mapResponse = (response, set, request) => {
|
|
|
1010
1024
|
return new Response(response);
|
|
1011
1025
|
case "Blob":
|
|
1012
1026
|
return handleFile(response, set);
|
|
1013
|
-
case "Object":
|
|
1014
1027
|
case "Array":
|
|
1015
|
-
return
|
|
1016
|
-
|
|
1017
|
-
|
|
1028
|
+
return Response.json(response);
|
|
1029
|
+
case "Object":
|
|
1030
|
+
for (const value in Object.values(response)) {
|
|
1031
|
+
switch (value?.constructor?.name) {
|
|
1032
|
+
case "Blob":
|
|
1033
|
+
case "File":
|
|
1034
|
+
case "ArrayBuffer":
|
|
1035
|
+
case "FileRef":
|
|
1036
|
+
return new Response(
|
|
1037
|
+
form(response),
|
|
1038
|
+
set
|
|
1039
|
+
);
|
|
1040
|
+
default:
|
|
1041
|
+
break;
|
|
1018
1042
|
}
|
|
1019
|
-
}
|
|
1043
|
+
}
|
|
1044
|
+
return Response.json(response, set);
|
|
1020
1045
|
case "ReadableStream":
|
|
1021
1046
|
request?.signal.addEventListener(
|
|
1022
1047
|
"abort",
|
|
@@ -1063,6 +1088,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1063
1088
|
if (response instanceof Cookie)
|
|
1064
1089
|
return new Response(response.value, set);
|
|
1065
1090
|
return new Response(response?.toString(), set);
|
|
1091
|
+
case "FormData":
|
|
1092
|
+
return new Response(response, set);
|
|
1066
1093
|
default:
|
|
1067
1094
|
if (response instanceof Response)
|
|
1068
1095
|
return new Response(response.body, {
|
|
@@ -1117,9 +1144,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1117
1144
|
return new Response(response, set);
|
|
1118
1145
|
case "Blob":
|
|
1119
1146
|
return handleFile(response, set);
|
|
1120
|
-
case "Object":
|
|
1121
1147
|
case "Array":
|
|
1122
1148
|
return Response.json(response, set);
|
|
1149
|
+
case "Object":
|
|
1150
|
+
for (const value in Object.values(response)) {
|
|
1151
|
+
switch (value?.constructor?.name) {
|
|
1152
|
+
case "Blob":
|
|
1153
|
+
case "File":
|
|
1154
|
+
case "ArrayBuffer":
|
|
1155
|
+
case "FileRef":
|
|
1156
|
+
return new Response(
|
|
1157
|
+
form(response),
|
|
1158
|
+
set
|
|
1159
|
+
);
|
|
1160
|
+
default:
|
|
1161
|
+
break;
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
return Response.json(response, set);
|
|
1123
1165
|
case "ReadableStream":
|
|
1124
1166
|
if (!set.headers["content-type"]?.startsWith(
|
|
1125
1167
|
"text/event-stream"
|
|
@@ -1191,6 +1233,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1191
1233
|
response.toString(),
|
|
1192
1234
|
set
|
|
1193
1235
|
);
|
|
1236
|
+
case "FormData":
|
|
1237
|
+
return new Response(response);
|
|
1194
1238
|
case "Cookie":
|
|
1195
1239
|
if (response instanceof Cookie)
|
|
1196
1240
|
return new Response(response.value, set);
|
|
@@ -1250,13 +1294,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1250
1294
|
return new Response(response);
|
|
1251
1295
|
case "Blob":
|
|
1252
1296
|
return handleFile(response, set);
|
|
1253
|
-
case "Object":
|
|
1254
1297
|
case "Array":
|
|
1255
|
-
return
|
|
1256
|
-
|
|
1257
|
-
|
|
1298
|
+
return Response.json(response);
|
|
1299
|
+
case "Object":
|
|
1300
|
+
for (const value in Object.values(response)) {
|
|
1301
|
+
switch (value?.constructor?.name) {
|
|
1302
|
+
case "Blob":
|
|
1303
|
+
case "File":
|
|
1304
|
+
case "ArrayBuffer":
|
|
1305
|
+
case "FileRef":
|
|
1306
|
+
return new Response(
|
|
1307
|
+
form(response),
|
|
1308
|
+
set
|
|
1309
|
+
);
|
|
1310
|
+
default:
|
|
1311
|
+
break;
|
|
1258
1312
|
}
|
|
1259
|
-
}
|
|
1313
|
+
}
|
|
1314
|
+
return Response.json(response, set);
|
|
1260
1315
|
case "ReadableStream":
|
|
1261
1316
|
request?.signal.addEventListener(
|
|
1262
1317
|
"abort",
|
|
@@ -1302,6 +1357,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1302
1357
|
if (response instanceof Cookie)
|
|
1303
1358
|
return new Response(response.value, set);
|
|
1304
1359
|
return new Response(response?.toString(), set);
|
|
1360
|
+
case "FormData":
|
|
1361
|
+
return new Response(response);
|
|
1305
1362
|
default:
|
|
1306
1363
|
if (response instanceof Response)
|
|
1307
1364
|
return new Response(response.body, {
|
|
@@ -1341,13 +1398,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1341
1398
|
return new Response(response);
|
|
1342
1399
|
case "Blob":
|
|
1343
1400
|
return handleFile(response);
|
|
1344
|
-
case "Object":
|
|
1345
1401
|
case "Array":
|
|
1346
|
-
return
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1402
|
+
return Response.json(response);
|
|
1403
|
+
case "Object":
|
|
1404
|
+
form:
|
|
1405
|
+
for (const value of Object.values(response))
|
|
1406
|
+
switch (value?.constructor?.name) {
|
|
1407
|
+
case "Blob":
|
|
1408
|
+
case "File":
|
|
1409
|
+
case "ArrayBuffer":
|
|
1410
|
+
case "FileRef":
|
|
1411
|
+
return new Response(form(response));
|
|
1412
|
+
case "Object":
|
|
1413
|
+
break form;
|
|
1414
|
+
default:
|
|
1415
|
+
break;
|
|
1416
|
+
}
|
|
1417
|
+
return Response.json(response);
|
|
1351
1418
|
case "ReadableStream":
|
|
1352
1419
|
request?.signal.addEventListener(
|
|
1353
1420
|
"abort",
|
|
@@ -1387,6 +1454,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1387
1454
|
case "Number":
|
|
1388
1455
|
case "Boolean":
|
|
1389
1456
|
return new Response(response.toString());
|
|
1457
|
+
case "FormData":
|
|
1458
|
+
return new Response(response);
|
|
1390
1459
|
default:
|
|
1391
1460
|
if (response instanceof Response)
|
|
1392
1461
|
return new Response(response.body, {
|
|
@@ -1626,7 +1695,7 @@ var validateFile = (options, value) => {
|
|
|
1626
1695
|
}
|
|
1627
1696
|
return true;
|
|
1628
1697
|
};
|
|
1629
|
-
var
|
|
1698
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
1630
1699
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
1631
1700
|
"Files",
|
|
1632
1701
|
(options, value) => {
|
|
@@ -1772,7 +1841,7 @@ var ElysiaType = {
|
|
|
1772
1841
|
return JSON.stringify(value);
|
|
1773
1842
|
});
|
|
1774
1843
|
},
|
|
1775
|
-
File,
|
|
1844
|
+
File: File2,
|
|
1776
1845
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
1777
1846
|
if (Array.isArray(value))
|
|
1778
1847
|
return value;
|
|
@@ -2097,12 +2166,25 @@ var lifeCycleToFn = (a) => {
|
|
|
2097
2166
|
stop: a.stop?.map((x) => x.fn)
|
|
2098
2167
|
};
|
|
2099
2168
|
};
|
|
2100
|
-
var redirect = (url, status = 301) =>
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2169
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
2170
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
2171
|
+
var form = (items) => {
|
|
2172
|
+
const formData = new FormData();
|
|
2173
|
+
for (const [key, value] of Object.entries(items)) {
|
|
2174
|
+
if (Array.isArray(value)) {
|
|
2175
|
+
for (const v of value) {
|
|
2176
|
+
if (value instanceof File)
|
|
2177
|
+
formData.append(key, value, value.name);
|
|
2178
|
+
formData.append(key, v);
|
|
2179
|
+
}
|
|
2180
|
+
continue;
|
|
2181
|
+
}
|
|
2182
|
+
if (value instanceof File)
|
|
2183
|
+
formData.append(key, value, value.name);
|
|
2184
|
+
formData.append(key, value);
|
|
2104
2185
|
}
|
|
2105
|
-
|
|
2186
|
+
return formData;
|
|
2187
|
+
};
|
|
2106
2188
|
|
|
2107
2189
|
// src/compose.ts
|
|
2108
2190
|
var headersHasToJSON = new Headers().toJSON;
|
package/dist/cjs/cookies.js
CHANGED
|
@@ -362,7 +362,7 @@ var validateFile = (options, value) => {
|
|
|
362
362
|
}
|
|
363
363
|
return true;
|
|
364
364
|
};
|
|
365
|
-
var
|
|
365
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
366
366
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
367
367
|
"Files",
|
|
368
368
|
(options, value) => {
|
|
@@ -508,7 +508,7 @@ var ElysiaType = {
|
|
|
508
508
|
return JSON.stringify(value);
|
|
509
509
|
});
|
|
510
510
|
},
|
|
511
|
-
File,
|
|
511
|
+
File: File2,
|
|
512
512
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
513
513
|
if (Array.isArray(value))
|
|
514
514
|
return value;
|
|
@@ -715,6 +715,7 @@ var isNumericString = (message) => {
|
|
|
715
715
|
}
|
|
716
716
|
return false;
|
|
717
717
|
};
|
|
718
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
718
719
|
|
|
719
720
|
// src/cookies.ts
|
|
720
721
|
var Cookie = class {
|
|
@@ -569,7 +569,7 @@ var validateFile = (options, value) => {
|
|
|
569
569
|
}
|
|
570
570
|
return true;
|
|
571
571
|
};
|
|
572
|
-
var
|
|
572
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
573
573
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
574
574
|
"Files",
|
|
575
575
|
(options, value) => {
|
|
@@ -715,7 +715,7 @@ var ElysiaType = {
|
|
|
715
715
|
return JSON.stringify(value);
|
|
716
716
|
});
|
|
717
717
|
},
|
|
718
|
-
File,
|
|
718
|
+
File: File2,
|
|
719
719
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
720
720
|
if (Array.isArray(value))
|
|
721
721
|
return value;
|
|
@@ -922,12 +922,25 @@ var isNumericString = (message) => {
|
|
|
922
922
|
}
|
|
923
923
|
return false;
|
|
924
924
|
};
|
|
925
|
-
var redirect = (url, status = 301) =>
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
925
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
926
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
927
|
+
var form = (items) => {
|
|
928
|
+
const formData = new FormData();
|
|
929
|
+
for (const [key, value] of Object.entries(items)) {
|
|
930
|
+
if (Array.isArray(value)) {
|
|
931
|
+
for (const v of value) {
|
|
932
|
+
if (value instanceof File)
|
|
933
|
+
formData.append(key, value, value.name);
|
|
934
|
+
formData.append(key, v);
|
|
935
|
+
}
|
|
936
|
+
continue;
|
|
937
|
+
}
|
|
938
|
+
if (value instanceof File)
|
|
939
|
+
formData.append(key, value, value.name);
|
|
940
|
+
formData.append(key, value);
|
|
929
941
|
}
|
|
930
|
-
|
|
942
|
+
return formData;
|
|
943
|
+
};
|
|
931
944
|
|
|
932
945
|
// src/handler.ts
|
|
933
946
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
@@ -1035,9 +1048,21 @@ var mapResponse = (response, set, request) => {
|
|
|
1035
1048
|
return new Response(response, set);
|
|
1036
1049
|
case "Blob":
|
|
1037
1050
|
return handleFile(response, set);
|
|
1038
|
-
case "Object":
|
|
1039
1051
|
case "Array":
|
|
1040
1052
|
return Response.json(response, set);
|
|
1053
|
+
case "Object":
|
|
1054
|
+
for (const value in Object.values(response)) {
|
|
1055
|
+
switch (value?.constructor?.name) {
|
|
1056
|
+
case "Blob":
|
|
1057
|
+
case "File":
|
|
1058
|
+
case "ArrayBuffer":
|
|
1059
|
+
case "FileRef":
|
|
1060
|
+
return new Response(form(response));
|
|
1061
|
+
default:
|
|
1062
|
+
break;
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
return Response.json(response, set);
|
|
1041
1066
|
case "ReadableStream":
|
|
1042
1067
|
if (!set.headers["content-type"]?.startsWith(
|
|
1043
1068
|
"text/event-stream"
|
|
@@ -1111,6 +1136,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1111
1136
|
if (response instanceof Cookie)
|
|
1112
1137
|
return new Response(response.value, set);
|
|
1113
1138
|
return new Response(response?.toString(), set);
|
|
1139
|
+
case "FormData":
|
|
1140
|
+
return new Response(response, set);
|
|
1114
1141
|
default:
|
|
1115
1142
|
if (response instanceof Response) {
|
|
1116
1143
|
let isCookieSet2 = false;
|
|
@@ -1170,13 +1197,24 @@ var mapResponse = (response, set, request) => {
|
|
|
1170
1197
|
return new Response(response);
|
|
1171
1198
|
case "Blob":
|
|
1172
1199
|
return handleFile(response, set);
|
|
1173
|
-
case "Object":
|
|
1174
1200
|
case "Array":
|
|
1175
|
-
return
|
|
1176
|
-
|
|
1177
|
-
|
|
1201
|
+
return Response.json(response);
|
|
1202
|
+
case "Object":
|
|
1203
|
+
for (const value in Object.values(response)) {
|
|
1204
|
+
switch (value?.constructor?.name) {
|
|
1205
|
+
case "Blob":
|
|
1206
|
+
case "File":
|
|
1207
|
+
case "ArrayBuffer":
|
|
1208
|
+
case "FileRef":
|
|
1209
|
+
return new Response(
|
|
1210
|
+
form(response),
|
|
1211
|
+
set
|
|
1212
|
+
);
|
|
1213
|
+
default:
|
|
1214
|
+
break;
|
|
1178
1215
|
}
|
|
1179
|
-
}
|
|
1216
|
+
}
|
|
1217
|
+
return Response.json(response, set);
|
|
1180
1218
|
case "ReadableStream":
|
|
1181
1219
|
request?.signal.addEventListener(
|
|
1182
1220
|
"abort",
|
|
@@ -1223,6 +1261,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1223
1261
|
if (response instanceof Cookie)
|
|
1224
1262
|
return new Response(response.value, set);
|
|
1225
1263
|
return new Response(response?.toString(), set);
|
|
1264
|
+
case "FormData":
|
|
1265
|
+
return new Response(response, set);
|
|
1226
1266
|
default:
|
|
1227
1267
|
if (response instanceof Response)
|
|
1228
1268
|
return new Response(response.body, {
|
|
@@ -1277,9 +1317,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1277
1317
|
return new Response(response, set);
|
|
1278
1318
|
case "Blob":
|
|
1279
1319
|
return handleFile(response, set);
|
|
1280
|
-
case "Object":
|
|
1281
1320
|
case "Array":
|
|
1282
1321
|
return Response.json(response, set);
|
|
1322
|
+
case "Object":
|
|
1323
|
+
for (const value in Object.values(response)) {
|
|
1324
|
+
switch (value?.constructor?.name) {
|
|
1325
|
+
case "Blob":
|
|
1326
|
+
case "File":
|
|
1327
|
+
case "ArrayBuffer":
|
|
1328
|
+
case "FileRef":
|
|
1329
|
+
return new Response(
|
|
1330
|
+
form(response),
|
|
1331
|
+
set
|
|
1332
|
+
);
|
|
1333
|
+
default:
|
|
1334
|
+
break;
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1337
|
+
return Response.json(response, set);
|
|
1283
1338
|
case "ReadableStream":
|
|
1284
1339
|
if (!set.headers["content-type"]?.startsWith(
|
|
1285
1340
|
"text/event-stream"
|
|
@@ -1351,6 +1406,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1351
1406
|
response.toString(),
|
|
1352
1407
|
set
|
|
1353
1408
|
);
|
|
1409
|
+
case "FormData":
|
|
1410
|
+
return new Response(response);
|
|
1354
1411
|
case "Cookie":
|
|
1355
1412
|
if (response instanceof Cookie)
|
|
1356
1413
|
return new Response(response.value, set);
|
|
@@ -1410,13 +1467,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1410
1467
|
return new Response(response);
|
|
1411
1468
|
case "Blob":
|
|
1412
1469
|
return handleFile(response, set);
|
|
1413
|
-
case "Object":
|
|
1414
1470
|
case "Array":
|
|
1415
|
-
return
|
|
1416
|
-
|
|
1417
|
-
|
|
1471
|
+
return Response.json(response);
|
|
1472
|
+
case "Object":
|
|
1473
|
+
for (const value in Object.values(response)) {
|
|
1474
|
+
switch (value?.constructor?.name) {
|
|
1475
|
+
case "Blob":
|
|
1476
|
+
case "File":
|
|
1477
|
+
case "ArrayBuffer":
|
|
1478
|
+
case "FileRef":
|
|
1479
|
+
return new Response(
|
|
1480
|
+
form(response),
|
|
1481
|
+
set
|
|
1482
|
+
);
|
|
1483
|
+
default:
|
|
1484
|
+
break;
|
|
1418
1485
|
}
|
|
1419
|
-
}
|
|
1486
|
+
}
|
|
1487
|
+
return Response.json(response, set);
|
|
1420
1488
|
case "ReadableStream":
|
|
1421
1489
|
request?.signal.addEventListener(
|
|
1422
1490
|
"abort",
|
|
@@ -1462,6 +1530,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1462
1530
|
if (response instanceof Cookie)
|
|
1463
1531
|
return new Response(response.value, set);
|
|
1464
1532
|
return new Response(response?.toString(), set);
|
|
1533
|
+
case "FormData":
|
|
1534
|
+
return new Response(response);
|
|
1465
1535
|
default:
|
|
1466
1536
|
if (response instanceof Response)
|
|
1467
1537
|
return new Response(response.body, {
|
|
@@ -1501,13 +1571,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1501
1571
|
return new Response(response);
|
|
1502
1572
|
case "Blob":
|
|
1503
1573
|
return handleFile(response);
|
|
1504
|
-
case "Object":
|
|
1505
1574
|
case "Array":
|
|
1506
|
-
return
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1575
|
+
return Response.json(response);
|
|
1576
|
+
case "Object":
|
|
1577
|
+
form:
|
|
1578
|
+
for (const value of Object.values(response))
|
|
1579
|
+
switch (value?.constructor?.name) {
|
|
1580
|
+
case "Blob":
|
|
1581
|
+
case "File":
|
|
1582
|
+
case "ArrayBuffer":
|
|
1583
|
+
case "FileRef":
|
|
1584
|
+
return new Response(form(response));
|
|
1585
|
+
case "Object":
|
|
1586
|
+
break form;
|
|
1587
|
+
default:
|
|
1588
|
+
break;
|
|
1589
|
+
}
|
|
1590
|
+
return Response.json(response);
|
|
1511
1591
|
case "ReadableStream":
|
|
1512
1592
|
request?.signal.addEventListener(
|
|
1513
1593
|
"abort",
|
|
@@ -1547,6 +1627,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1547
1627
|
case "Number":
|
|
1548
1628
|
case "Boolean":
|
|
1549
1629
|
return new Response(response.toString());
|
|
1630
|
+
case "FormData":
|
|
1631
|
+
return new Response(response);
|
|
1550
1632
|
default:
|
|
1551
1633
|
if (response instanceof Response)
|
|
1552
1634
|
return new Response(response.body, {
|
|
@@ -1638,11 +1720,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1638
1720
|
break;
|
|
1639
1721
|
case "multipart/form-data":
|
|
1640
1722
|
body = {};
|
|
1641
|
-
const
|
|
1642
|
-
for (const key of
|
|
1723
|
+
const form2 = await request.formData();
|
|
1724
|
+
for (const key of form2.keys()) {
|
|
1643
1725
|
if (body[key])
|
|
1644
1726
|
continue;
|
|
1645
|
-
const value =
|
|
1727
|
+
const value = form2.getAll(key);
|
|
1646
1728
|
if (value.length === 1)
|
|
1647
1729
|
body[key] = value[0];
|
|
1648
1730
|
else
|
|
@@ -1684,11 +1766,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1684
1766
|
break;
|
|
1685
1767
|
case "multipart/form-data":
|
|
1686
1768
|
body = {};
|
|
1687
|
-
const
|
|
1688
|
-
for (const key of
|
|
1769
|
+
const form2 = await request.formData();
|
|
1770
|
+
for (const key of form2.keys()) {
|
|
1689
1771
|
if (body[key])
|
|
1690
1772
|
continue;
|
|
1691
|
-
const value =
|
|
1773
|
+
const value = form2.getAll(key);
|
|
1692
1774
|
if (value.length === 1)
|
|
1693
1775
|
body[key] = value[0];
|
|
1694
1776
|
else
|
package/dist/cjs/error.js
CHANGED
|
@@ -274,7 +274,7 @@ var validateFile = (options, value) => {
|
|
|
274
274
|
}
|
|
275
275
|
return true;
|
|
276
276
|
};
|
|
277
|
-
var
|
|
277
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
278
278
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
279
279
|
"Files",
|
|
280
280
|
(options, value) => {
|
|
@@ -420,7 +420,7 @@ var ElysiaType = {
|
|
|
420
420
|
return JSON.stringify(value);
|
|
421
421
|
});
|
|
422
422
|
},
|
|
423
|
-
File,
|
|
423
|
+
File: File2,
|
|
424
424
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
425
425
|
if (Array.isArray(value))
|
|
426
426
|
return value;
|
|
@@ -582,6 +582,7 @@ var InvertedStatusMap = Object.fromEntries(
|
|
|
582
582
|
Object.entries(StatusMap).map(([k, v]) => [v, k])
|
|
583
583
|
);
|
|
584
584
|
var encoder = new TextEncoder();
|
|
585
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
585
586
|
|
|
586
587
|
// src/error.ts
|
|
587
588
|
var env = typeof Bun !== "undefined" ? Bun.env : typeof process !== "undefined" ? process?.env : void 0;
|