elysia 1.0.21 → 1.0.23
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 +111 -110
- package/dist/bun/index.js.map +23 -32
- package/dist/cjs/compose.js +171 -39
- package/dist/cjs/cookies.js +9 -2
- package/dist/cjs/dynamic-handle.js +129 -31
- package/dist/cjs/error.js +3 -2
- package/dist/cjs/handler.js +117 -20
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +185 -48
- package/dist/cjs/sucrose.js +5 -1
- package/dist/cjs/type-system.js +3 -2
- package/dist/cjs/types.d.ts +11 -4
- package/dist/cjs/utils.d.ts +16 -4
- package/dist/cjs/utils.js +28 -11
- package/dist/cjs/ws/index.js +3 -2
- package/dist/compose.mjs +171 -39
- package/dist/cookies.mjs +9 -2
- package/dist/dynamic-handle.mjs +129 -31
- package/dist/error.mjs +3 -2
- package/dist/handler.mjs +117 -20
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +184 -48
- package/dist/sucrose.mjs +5 -1
- package/dist/type-system.mjs +3 -2
- package/dist/types.d.ts +11 -4
- package/dist/utils.d.ts +16 -4
- package/dist/utils.mjs +26 -11
- package/dist/ws/index.mjs +3 -2
- package/package.json +2 -1
- package/tsconfig.test.tsbuildinfo +1 -1
package/dist/dynamic-handle.mjs
CHANGED
|
@@ -293,6 +293,12 @@ var parseCookie = async (set, cookieString, {
|
|
|
293
293
|
throw new InvalidCookieSignature(name);
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
|
+
if (value == null) {
|
|
297
|
+
jar[name] = {
|
|
298
|
+
value: v
|
|
299
|
+
};
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
296
302
|
const start = value.charCodeAt(0);
|
|
297
303
|
if (start === 123 || start === 91)
|
|
298
304
|
try {
|
|
@@ -542,7 +548,7 @@ var validateFile = (options, value) => {
|
|
|
542
548
|
}
|
|
543
549
|
return true;
|
|
544
550
|
};
|
|
545
|
-
var
|
|
551
|
+
var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
|
|
546
552
|
var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
|
|
547
553
|
"Files",
|
|
548
554
|
(options, value) => {
|
|
@@ -688,7 +694,7 @@ var ElysiaType = {
|
|
|
688
694
|
return JSON.stringify(value);
|
|
689
695
|
});
|
|
690
696
|
},
|
|
691
|
-
File,
|
|
697
|
+
File: File2,
|
|
692
698
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
693
699
|
if (Array.isArray(value))
|
|
694
700
|
return value;
|
|
@@ -895,12 +901,25 @@ var isNumericString = (message) => {
|
|
|
895
901
|
}
|
|
896
902
|
return false;
|
|
897
903
|
};
|
|
898
|
-
var redirect = (url, status = 301) =>
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
904
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
905
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
906
|
+
var form = (items) => {
|
|
907
|
+
const formData = new FormData();
|
|
908
|
+
for (const [key, value] of Object.entries(items)) {
|
|
909
|
+
if (Array.isArray(value)) {
|
|
910
|
+
for (const v of value) {
|
|
911
|
+
if (value instanceof File)
|
|
912
|
+
formData.append(key, value, value.name);
|
|
913
|
+
formData.append(key, v);
|
|
914
|
+
}
|
|
915
|
+
continue;
|
|
916
|
+
}
|
|
917
|
+
if (value instanceof File)
|
|
918
|
+
formData.append(key, value, value.name);
|
|
919
|
+
formData.append(key, value);
|
|
902
920
|
}
|
|
903
|
-
|
|
921
|
+
return formData;
|
|
922
|
+
};
|
|
904
923
|
|
|
905
924
|
// src/handler.ts
|
|
906
925
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
@@ -1008,9 +1027,21 @@ var mapResponse = (response, set, request) => {
|
|
|
1008
1027
|
return new Response(response, set);
|
|
1009
1028
|
case "Blob":
|
|
1010
1029
|
return handleFile(response, set);
|
|
1011
|
-
case "Object":
|
|
1012
1030
|
case "Array":
|
|
1013
1031
|
return Response.json(response, set);
|
|
1032
|
+
case "Object":
|
|
1033
|
+
for (const value in Object.values(response)) {
|
|
1034
|
+
switch (value?.constructor?.name) {
|
|
1035
|
+
case "Blob":
|
|
1036
|
+
case "File":
|
|
1037
|
+
case "ArrayBuffer":
|
|
1038
|
+
case "FileRef":
|
|
1039
|
+
return new Response(form(response));
|
|
1040
|
+
default:
|
|
1041
|
+
break;
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
return Response.json(response, set);
|
|
1014
1045
|
case "ReadableStream":
|
|
1015
1046
|
if (!set.headers["content-type"]?.startsWith(
|
|
1016
1047
|
"text/event-stream"
|
|
@@ -1084,6 +1115,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1084
1115
|
if (response instanceof Cookie)
|
|
1085
1116
|
return new Response(response.value, set);
|
|
1086
1117
|
return new Response(response?.toString(), set);
|
|
1118
|
+
case "FormData":
|
|
1119
|
+
return new Response(response, set);
|
|
1087
1120
|
default:
|
|
1088
1121
|
if (response instanceof Response) {
|
|
1089
1122
|
let isCookieSet2 = false;
|
|
@@ -1124,6 +1157,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1124
1157
|
return response.then((x) => mapResponse(x, set));
|
|
1125
1158
|
if (response instanceof Error)
|
|
1126
1159
|
return errorToResponse(response, set);
|
|
1160
|
+
if ("toResponse" in response)
|
|
1161
|
+
return mapResponse(response.toResponse(), set);
|
|
1127
1162
|
if ("charCodeAt" in response) {
|
|
1128
1163
|
const code = response.charCodeAt(0);
|
|
1129
1164
|
if (code === 123 || code === 91) {
|
|
@@ -1143,13 +1178,24 @@ var mapResponse = (response, set, request) => {
|
|
|
1143
1178
|
return new Response(response);
|
|
1144
1179
|
case "Blob":
|
|
1145
1180
|
return handleFile(response, set);
|
|
1146
|
-
case "Object":
|
|
1147
1181
|
case "Array":
|
|
1148
|
-
return
|
|
1149
|
-
|
|
1150
|
-
|
|
1182
|
+
return Response.json(response);
|
|
1183
|
+
case "Object":
|
|
1184
|
+
for (const value in Object.values(response)) {
|
|
1185
|
+
switch (value?.constructor?.name) {
|
|
1186
|
+
case "Blob":
|
|
1187
|
+
case "File":
|
|
1188
|
+
case "ArrayBuffer":
|
|
1189
|
+
case "FileRef":
|
|
1190
|
+
return new Response(
|
|
1191
|
+
form(response),
|
|
1192
|
+
set
|
|
1193
|
+
);
|
|
1194
|
+
default:
|
|
1195
|
+
break;
|
|
1151
1196
|
}
|
|
1152
|
-
}
|
|
1197
|
+
}
|
|
1198
|
+
return Response.json(response, set);
|
|
1153
1199
|
case "ReadableStream":
|
|
1154
1200
|
request?.signal.addEventListener(
|
|
1155
1201
|
"abort",
|
|
@@ -1196,6 +1242,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1196
1242
|
if (response instanceof Cookie)
|
|
1197
1243
|
return new Response(response.value, set);
|
|
1198
1244
|
return new Response(response?.toString(), set);
|
|
1245
|
+
case "FormData":
|
|
1246
|
+
return new Response(response, set);
|
|
1199
1247
|
default:
|
|
1200
1248
|
if (response instanceof Response)
|
|
1201
1249
|
return new Response(response.body, {
|
|
@@ -1207,6 +1255,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1207
1255
|
return response.then((x) => mapResponse(x, set));
|
|
1208
1256
|
if (response instanceof Error)
|
|
1209
1257
|
return errorToResponse(response, set);
|
|
1258
|
+
if ("toResponse" in response)
|
|
1259
|
+
return mapResponse(response.toResponse(), set);
|
|
1210
1260
|
if ("charCodeAt" in response) {
|
|
1211
1261
|
const code = response.charCodeAt(0);
|
|
1212
1262
|
if (code === 123 || code === 91) {
|
|
@@ -1250,9 +1300,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1250
1300
|
return new Response(response, set);
|
|
1251
1301
|
case "Blob":
|
|
1252
1302
|
return handleFile(response, set);
|
|
1253
|
-
case "Object":
|
|
1254
1303
|
case "Array":
|
|
1255
1304
|
return Response.json(response, set);
|
|
1305
|
+
case "Object":
|
|
1306
|
+
for (const value in Object.values(response)) {
|
|
1307
|
+
switch (value?.constructor?.name) {
|
|
1308
|
+
case "Blob":
|
|
1309
|
+
case "File":
|
|
1310
|
+
case "ArrayBuffer":
|
|
1311
|
+
case "FileRef":
|
|
1312
|
+
return new Response(
|
|
1313
|
+
form(response),
|
|
1314
|
+
set
|
|
1315
|
+
);
|
|
1316
|
+
default:
|
|
1317
|
+
break;
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
return Response.json(response, set);
|
|
1256
1321
|
case "ReadableStream":
|
|
1257
1322
|
if (!set.headers["content-type"]?.startsWith(
|
|
1258
1323
|
"text/event-stream"
|
|
@@ -1324,6 +1389,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1324
1389
|
response.toString(),
|
|
1325
1390
|
set
|
|
1326
1391
|
);
|
|
1392
|
+
case "FormData":
|
|
1393
|
+
return new Response(response);
|
|
1327
1394
|
case "Cookie":
|
|
1328
1395
|
if (response instanceof Cookie)
|
|
1329
1396
|
return new Response(response.value, set);
|
|
@@ -1364,6 +1431,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1364
1431
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1365
1432
|
if (response instanceof Error)
|
|
1366
1433
|
return errorToResponse(response, set);
|
|
1434
|
+
if ("toResponse" in response)
|
|
1435
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1367
1436
|
if ("charCodeAt" in response) {
|
|
1368
1437
|
const code = response.charCodeAt(0);
|
|
1369
1438
|
if (code === 123 || code === 91) {
|
|
@@ -1383,13 +1452,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1383
1452
|
return new Response(response);
|
|
1384
1453
|
case "Blob":
|
|
1385
1454
|
return handleFile(response, set);
|
|
1386
|
-
case "Object":
|
|
1387
1455
|
case "Array":
|
|
1388
|
-
return
|
|
1389
|
-
|
|
1390
|
-
|
|
1456
|
+
return Response.json(response);
|
|
1457
|
+
case "Object":
|
|
1458
|
+
for (const value in Object.values(response)) {
|
|
1459
|
+
switch (value?.constructor?.name) {
|
|
1460
|
+
case "Blob":
|
|
1461
|
+
case "File":
|
|
1462
|
+
case "ArrayBuffer":
|
|
1463
|
+
case "FileRef":
|
|
1464
|
+
return new Response(
|
|
1465
|
+
form(response),
|
|
1466
|
+
set
|
|
1467
|
+
);
|
|
1468
|
+
default:
|
|
1469
|
+
break;
|
|
1391
1470
|
}
|
|
1392
|
-
}
|
|
1471
|
+
}
|
|
1472
|
+
return Response.json(response, set);
|
|
1393
1473
|
case "ReadableStream":
|
|
1394
1474
|
request?.signal.addEventListener(
|
|
1395
1475
|
"abort",
|
|
@@ -1435,6 +1515,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1435
1515
|
if (response instanceof Cookie)
|
|
1436
1516
|
return new Response(response.value, set);
|
|
1437
1517
|
return new Response(response?.toString(), set);
|
|
1518
|
+
case "FormData":
|
|
1519
|
+
return new Response(response);
|
|
1438
1520
|
default:
|
|
1439
1521
|
if (response instanceof Response)
|
|
1440
1522
|
return new Response(response.body, {
|
|
@@ -1446,6 +1528,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1446
1528
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1447
1529
|
if (response instanceof Error)
|
|
1448
1530
|
return errorToResponse(response, set);
|
|
1531
|
+
if ("toResponse" in response)
|
|
1532
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1449
1533
|
if ("charCodeAt" in response) {
|
|
1450
1534
|
const code = response.charCodeAt(0);
|
|
1451
1535
|
if (code === 123 || code === 91) {
|
|
@@ -1474,13 +1558,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1474
1558
|
return new Response(response);
|
|
1475
1559
|
case "Blob":
|
|
1476
1560
|
return handleFile(response);
|
|
1477
|
-
case "Object":
|
|
1478
1561
|
case "Array":
|
|
1479
|
-
return
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1562
|
+
return Response.json(response);
|
|
1563
|
+
case "Object":
|
|
1564
|
+
form:
|
|
1565
|
+
for (const value of Object.values(response))
|
|
1566
|
+
switch (value?.constructor?.name) {
|
|
1567
|
+
case "Blob":
|
|
1568
|
+
case "File":
|
|
1569
|
+
case "ArrayBuffer":
|
|
1570
|
+
case "FileRef":
|
|
1571
|
+
return new Response(form(response));
|
|
1572
|
+
case "Object":
|
|
1573
|
+
break form;
|
|
1574
|
+
default:
|
|
1575
|
+
break;
|
|
1576
|
+
}
|
|
1577
|
+
return Response.json(response);
|
|
1484
1578
|
case "ReadableStream":
|
|
1485
1579
|
request?.signal.addEventListener(
|
|
1486
1580
|
"abort",
|
|
@@ -1520,6 +1614,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1520
1614
|
case "Number":
|
|
1521
1615
|
case "Boolean":
|
|
1522
1616
|
return new Response(response.toString());
|
|
1617
|
+
case "FormData":
|
|
1618
|
+
return new Response(response);
|
|
1523
1619
|
default:
|
|
1524
1620
|
if (response instanceof Response)
|
|
1525
1621
|
return new Response(response.body, {
|
|
@@ -1531,6 +1627,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1531
1627
|
return response.then(mapCompactResponse);
|
|
1532
1628
|
if (response instanceof Error)
|
|
1533
1629
|
return errorToResponse(response);
|
|
1630
|
+
if ("toResponse" in response)
|
|
1631
|
+
return mapCompactResponse(response.toResponse());
|
|
1534
1632
|
if ("charCodeAt" in response) {
|
|
1535
1633
|
const code = response.charCodeAt(0);
|
|
1536
1634
|
if (code === 123 || code === 91) {
|
|
@@ -1611,11 +1709,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1611
1709
|
break;
|
|
1612
1710
|
case "multipart/form-data":
|
|
1613
1711
|
body = {};
|
|
1614
|
-
const
|
|
1615
|
-
for (const key of
|
|
1712
|
+
const form2 = await request.formData();
|
|
1713
|
+
for (const key of form2.keys()) {
|
|
1616
1714
|
if (body[key])
|
|
1617
1715
|
continue;
|
|
1618
|
-
const value =
|
|
1716
|
+
const value = form2.getAll(key);
|
|
1619
1717
|
if (value.length === 1)
|
|
1620
1718
|
body[key] = value[0];
|
|
1621
1719
|
else
|
|
@@ -1657,11 +1755,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1657
1755
|
break;
|
|
1658
1756
|
case "multipart/form-data":
|
|
1659
1757
|
body = {};
|
|
1660
|
-
const
|
|
1661
|
-
for (const key of
|
|
1758
|
+
const form2 = await request.formData();
|
|
1759
|
+
for (const key of form2.keys()) {
|
|
1662
1760
|
if (body[key])
|
|
1663
1761
|
continue;
|
|
1664
|
-
const value =
|
|
1762
|
+
const value = form2.getAll(key);
|
|
1665
1763
|
if (value.length === 1)
|
|
1666
1764
|
body[key] = value[0];
|
|
1667
1765
|
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;
|
package/dist/handler.mjs
CHANGED
|
@@ -442,7 +442,7 @@ var validateFile = (options, value) => {
|
|
|
442
442
|
}
|
|
443
443
|
return true;
|
|
444
444
|
};
|
|
445
|
-
var
|
|
445
|
+
var File2 = TypeRegistry.Get("Files") ?? TypeSystem.Type("File", validateFile);
|
|
446
446
|
var Files = TypeRegistry.Get("Files") ?? TypeSystem.Type(
|
|
447
447
|
"Files",
|
|
448
448
|
(options, value) => {
|
|
@@ -588,7 +588,7 @@ var ElysiaType = {
|
|
|
588
588
|
return JSON.stringify(value);
|
|
589
589
|
});
|
|
590
590
|
},
|
|
591
|
-
File,
|
|
591
|
+
File: File2,
|
|
592
592
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
593
593
|
if (Array.isArray(value))
|
|
594
594
|
return value;
|
|
@@ -750,6 +750,24 @@ var InvertedStatusMap = Object.fromEntries(
|
|
|
750
750
|
Object.entries(StatusMap).map(([k, v]) => [v, k])
|
|
751
751
|
);
|
|
752
752
|
var encoder = new TextEncoder();
|
|
753
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
754
|
+
var form = (items) => {
|
|
755
|
+
const formData = new FormData();
|
|
756
|
+
for (const [key, value] of Object.entries(items)) {
|
|
757
|
+
if (Array.isArray(value)) {
|
|
758
|
+
for (const v of value) {
|
|
759
|
+
if (value instanceof File)
|
|
760
|
+
formData.append(key, value, value.name);
|
|
761
|
+
formData.append(key, v);
|
|
762
|
+
}
|
|
763
|
+
continue;
|
|
764
|
+
}
|
|
765
|
+
if (value instanceof File)
|
|
766
|
+
formData.append(key, value, value.name);
|
|
767
|
+
formData.append(key, value);
|
|
768
|
+
}
|
|
769
|
+
return formData;
|
|
770
|
+
};
|
|
753
771
|
|
|
754
772
|
// src/handler.ts
|
|
755
773
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
@@ -857,9 +875,21 @@ var mapResponse = (response, set, request) => {
|
|
|
857
875
|
return new Response(response, set);
|
|
858
876
|
case "Blob":
|
|
859
877
|
return handleFile(response, set);
|
|
860
|
-
case "Object":
|
|
861
878
|
case "Array":
|
|
862
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);
|
|
863
893
|
case "ReadableStream":
|
|
864
894
|
if (!set.headers["content-type"]?.startsWith(
|
|
865
895
|
"text/event-stream"
|
|
@@ -933,6 +963,8 @@ var mapResponse = (response, set, request) => {
|
|
|
933
963
|
if (response instanceof Cookie)
|
|
934
964
|
return new Response(response.value, set);
|
|
935
965
|
return new Response(response?.toString(), set);
|
|
966
|
+
case "FormData":
|
|
967
|
+
return new Response(response, set);
|
|
936
968
|
default:
|
|
937
969
|
if (response instanceof Response) {
|
|
938
970
|
let isCookieSet2 = false;
|
|
@@ -973,6 +1005,8 @@ var mapResponse = (response, set, request) => {
|
|
|
973
1005
|
return response.then((x) => mapResponse(x, set));
|
|
974
1006
|
if (response instanceof Error)
|
|
975
1007
|
return errorToResponse(response, set);
|
|
1008
|
+
if ("toResponse" in response)
|
|
1009
|
+
return mapResponse(response.toResponse(), set);
|
|
976
1010
|
if ("charCodeAt" in response) {
|
|
977
1011
|
const code = response.charCodeAt(0);
|
|
978
1012
|
if (code === 123 || code === 91) {
|
|
@@ -992,13 +1026,24 @@ var mapResponse = (response, set, request) => {
|
|
|
992
1026
|
return new Response(response);
|
|
993
1027
|
case "Blob":
|
|
994
1028
|
return handleFile(response, set);
|
|
995
|
-
case "Object":
|
|
996
1029
|
case "Array":
|
|
997
|
-
return
|
|
998
|
-
|
|
999
|
-
|
|
1030
|
+
return Response.json(response);
|
|
1031
|
+
case "Object":
|
|
1032
|
+
for (const value in Object.values(response)) {
|
|
1033
|
+
switch (value?.constructor?.name) {
|
|
1034
|
+
case "Blob":
|
|
1035
|
+
case "File":
|
|
1036
|
+
case "ArrayBuffer":
|
|
1037
|
+
case "FileRef":
|
|
1038
|
+
return new Response(
|
|
1039
|
+
form(response),
|
|
1040
|
+
set
|
|
1041
|
+
);
|
|
1042
|
+
default:
|
|
1043
|
+
break;
|
|
1000
1044
|
}
|
|
1001
|
-
}
|
|
1045
|
+
}
|
|
1046
|
+
return Response.json(response, set);
|
|
1002
1047
|
case "ReadableStream":
|
|
1003
1048
|
request?.signal.addEventListener(
|
|
1004
1049
|
"abort",
|
|
@@ -1045,6 +1090,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1045
1090
|
if (response instanceof Cookie)
|
|
1046
1091
|
return new Response(response.value, set);
|
|
1047
1092
|
return new Response(response?.toString(), set);
|
|
1093
|
+
case "FormData":
|
|
1094
|
+
return new Response(response, set);
|
|
1048
1095
|
default:
|
|
1049
1096
|
if (response instanceof Response)
|
|
1050
1097
|
return new Response(response.body, {
|
|
@@ -1056,6 +1103,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1056
1103
|
return response.then((x) => mapResponse(x, set));
|
|
1057
1104
|
if (response instanceof Error)
|
|
1058
1105
|
return errorToResponse(response, set);
|
|
1106
|
+
if ("toResponse" in response)
|
|
1107
|
+
return mapResponse(response.toResponse(), set);
|
|
1059
1108
|
if ("charCodeAt" in response) {
|
|
1060
1109
|
const code = response.charCodeAt(0);
|
|
1061
1110
|
if (code === 123 || code === 91) {
|
|
@@ -1099,9 +1148,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1099
1148
|
return new Response(response, set);
|
|
1100
1149
|
case "Blob":
|
|
1101
1150
|
return handleFile(response, set);
|
|
1102
|
-
case "Object":
|
|
1103
1151
|
case "Array":
|
|
1104
1152
|
return Response.json(response, set);
|
|
1153
|
+
case "Object":
|
|
1154
|
+
for (const value in Object.values(response)) {
|
|
1155
|
+
switch (value?.constructor?.name) {
|
|
1156
|
+
case "Blob":
|
|
1157
|
+
case "File":
|
|
1158
|
+
case "ArrayBuffer":
|
|
1159
|
+
case "FileRef":
|
|
1160
|
+
return new Response(
|
|
1161
|
+
form(response),
|
|
1162
|
+
set
|
|
1163
|
+
);
|
|
1164
|
+
default:
|
|
1165
|
+
break;
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
return Response.json(response, set);
|
|
1105
1169
|
case "ReadableStream":
|
|
1106
1170
|
if (!set.headers["content-type"]?.startsWith(
|
|
1107
1171
|
"text/event-stream"
|
|
@@ -1173,6 +1237,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1173
1237
|
response.toString(),
|
|
1174
1238
|
set
|
|
1175
1239
|
);
|
|
1240
|
+
case "FormData":
|
|
1241
|
+
return new Response(response);
|
|
1176
1242
|
case "Cookie":
|
|
1177
1243
|
if (response instanceof Cookie)
|
|
1178
1244
|
return new Response(response.value, set);
|
|
@@ -1213,6 +1279,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1213
1279
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1214
1280
|
if (response instanceof Error)
|
|
1215
1281
|
return errorToResponse(response, set);
|
|
1282
|
+
if ("toResponse" in response)
|
|
1283
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1216
1284
|
if ("charCodeAt" in response) {
|
|
1217
1285
|
const code = response.charCodeAt(0);
|
|
1218
1286
|
if (code === 123 || code === 91) {
|
|
@@ -1232,13 +1300,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1232
1300
|
return new Response(response);
|
|
1233
1301
|
case "Blob":
|
|
1234
1302
|
return handleFile(response, set);
|
|
1235
|
-
case "Object":
|
|
1236
1303
|
case "Array":
|
|
1237
|
-
return
|
|
1238
|
-
|
|
1239
|
-
|
|
1304
|
+
return Response.json(response);
|
|
1305
|
+
case "Object":
|
|
1306
|
+
for (const value in Object.values(response)) {
|
|
1307
|
+
switch (value?.constructor?.name) {
|
|
1308
|
+
case "Blob":
|
|
1309
|
+
case "File":
|
|
1310
|
+
case "ArrayBuffer":
|
|
1311
|
+
case "FileRef":
|
|
1312
|
+
return new Response(
|
|
1313
|
+
form(response),
|
|
1314
|
+
set
|
|
1315
|
+
);
|
|
1316
|
+
default:
|
|
1317
|
+
break;
|
|
1240
1318
|
}
|
|
1241
|
-
}
|
|
1319
|
+
}
|
|
1320
|
+
return Response.json(response, set);
|
|
1242
1321
|
case "ReadableStream":
|
|
1243
1322
|
request?.signal.addEventListener(
|
|
1244
1323
|
"abort",
|
|
@@ -1284,6 +1363,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1284
1363
|
if (response instanceof Cookie)
|
|
1285
1364
|
return new Response(response.value, set);
|
|
1286
1365
|
return new Response(response?.toString(), set);
|
|
1366
|
+
case "FormData":
|
|
1367
|
+
return new Response(response);
|
|
1287
1368
|
default:
|
|
1288
1369
|
if (response instanceof Response)
|
|
1289
1370
|
return new Response(response.body, {
|
|
@@ -1295,6 +1376,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1295
1376
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1296
1377
|
if (response instanceof Error)
|
|
1297
1378
|
return errorToResponse(response, set);
|
|
1379
|
+
if ("toResponse" in response)
|
|
1380
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1298
1381
|
if ("charCodeAt" in response) {
|
|
1299
1382
|
const code = response.charCodeAt(0);
|
|
1300
1383
|
if (code === 123 || code === 91) {
|
|
@@ -1323,13 +1406,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1323
1406
|
return new Response(response);
|
|
1324
1407
|
case "Blob":
|
|
1325
1408
|
return handleFile(response);
|
|
1326
|
-
case "Object":
|
|
1327
1409
|
case "Array":
|
|
1328
|
-
return
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1410
|
+
return Response.json(response);
|
|
1411
|
+
case "Object":
|
|
1412
|
+
form:
|
|
1413
|
+
for (const value of Object.values(response))
|
|
1414
|
+
switch (value?.constructor?.name) {
|
|
1415
|
+
case "Blob":
|
|
1416
|
+
case "File":
|
|
1417
|
+
case "ArrayBuffer":
|
|
1418
|
+
case "FileRef":
|
|
1419
|
+
return new Response(form(response));
|
|
1420
|
+
case "Object":
|
|
1421
|
+
break form;
|
|
1422
|
+
default:
|
|
1423
|
+
break;
|
|
1424
|
+
}
|
|
1425
|
+
return Response.json(response);
|
|
1333
1426
|
case "ReadableStream":
|
|
1334
1427
|
request?.signal.addEventListener(
|
|
1335
1428
|
"abort",
|
|
@@ -1369,6 +1462,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1369
1462
|
case "Number":
|
|
1370
1463
|
case "Boolean":
|
|
1371
1464
|
return new Response(response.toString());
|
|
1465
|
+
case "FormData":
|
|
1466
|
+
return new Response(response);
|
|
1372
1467
|
default:
|
|
1373
1468
|
if (response instanceof Response)
|
|
1374
1469
|
return new Response(response.body, {
|
|
@@ -1380,6 +1475,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1380
1475
|
return response.then(mapCompactResponse);
|
|
1381
1476
|
if (response instanceof Error)
|
|
1382
1477
|
return errorToResponse(response);
|
|
1478
|
+
if ("toResponse" in response)
|
|
1479
|
+
return mapCompactResponse(response.toResponse());
|
|
1383
1480
|
if ("charCodeAt" in response) {
|
|
1384
1481
|
const code = response.charCodeAt(0);
|
|
1385
1482
|
if (code === 123 || code === 91) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1418,7 +1418,7 @@ export { Elysia };
|
|
|
1418
1418
|
export { mapResponse, mapCompactResponse, mapEarlyResponse } from './handler';
|
|
1419
1419
|
export { t } from './type-system';
|
|
1420
1420
|
export { Cookie, type CookieOptions } from './cookies';
|
|
1421
|
-
export { getSchemaValidator, mergeHook, mergeObjectArray, getResponseSchemaValidator, redirect, StatusMap, InvertedStatusMap } from './utils';
|
|
1421
|
+
export { getSchemaValidator, mergeHook, mergeObjectArray, getResponseSchemaValidator, redirect, StatusMap, InvertedStatusMap, form, type ELYSIA_FORM_DATA } from './utils';
|
|
1422
1422
|
export { error, ParseError, NotFoundError, ValidationError, InternalServerError, InvalidCookieSignature, ERROR_CODE, ELYSIA_RESPONSE } from './error';
|
|
1423
1423
|
export type { Context, PreContext } from './context';
|
|
1424
1424
|
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, ErrorHandler, AfterHandler, LifeCycleEvent, TraceEvent, LifeCycleStore, LifeCycleType, MaybePromise, ListenCallback, UnwrapSchema, TraceHandler, TraceProcess, TraceReporter, TraceStream, Checksum, DocumentDecoration, InferContext, InferHandler } from './types';
|