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
|
@@ -330,6 +330,12 @@ var parseCookie = async (set, cookieString, {
|
|
|
330
330
|
throw new InvalidCookieSignature(name);
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
|
+
if (value == null) {
|
|
334
|
+
jar[name] = {
|
|
335
|
+
value: v
|
|
336
|
+
};
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
333
339
|
const start = value.charCodeAt(0);
|
|
334
340
|
if (start === 123 || start === 91)
|
|
335
341
|
try {
|
|
@@ -569,7 +575,7 @@ var validateFile = (options, value) => {
|
|
|
569
575
|
}
|
|
570
576
|
return true;
|
|
571
577
|
};
|
|
572
|
-
var
|
|
578
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
573
579
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
574
580
|
"Files",
|
|
575
581
|
(options, value) => {
|
|
@@ -715,7 +721,7 @@ var ElysiaType = {
|
|
|
715
721
|
return JSON.stringify(value);
|
|
716
722
|
});
|
|
717
723
|
},
|
|
718
|
-
File,
|
|
724
|
+
File: File2,
|
|
719
725
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
720
726
|
if (Array.isArray(value))
|
|
721
727
|
return value;
|
|
@@ -922,12 +928,25 @@ var isNumericString = (message) => {
|
|
|
922
928
|
}
|
|
923
929
|
return false;
|
|
924
930
|
};
|
|
925
|
-
var redirect = (url, status = 301) =>
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
931
|
+
var redirect = (url, status = 301) => Response.redirect(url, status);
|
|
932
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
933
|
+
var form = (items) => {
|
|
934
|
+
const formData = new FormData();
|
|
935
|
+
for (const [key, value] of Object.entries(items)) {
|
|
936
|
+
if (Array.isArray(value)) {
|
|
937
|
+
for (const v of value) {
|
|
938
|
+
if (value instanceof File)
|
|
939
|
+
formData.append(key, value, value.name);
|
|
940
|
+
formData.append(key, v);
|
|
941
|
+
}
|
|
942
|
+
continue;
|
|
943
|
+
}
|
|
944
|
+
if (value instanceof File)
|
|
945
|
+
formData.append(key, value, value.name);
|
|
946
|
+
formData.append(key, value);
|
|
929
947
|
}
|
|
930
|
-
|
|
948
|
+
return formData;
|
|
949
|
+
};
|
|
931
950
|
|
|
932
951
|
// src/handler.ts
|
|
933
952
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
@@ -1035,9 +1054,21 @@ var mapResponse = (response, set, request) => {
|
|
|
1035
1054
|
return new Response(response, set);
|
|
1036
1055
|
case "Blob":
|
|
1037
1056
|
return handleFile(response, set);
|
|
1038
|
-
case "Object":
|
|
1039
1057
|
case "Array":
|
|
1040
1058
|
return Response.json(response, set);
|
|
1059
|
+
case "Object":
|
|
1060
|
+
for (const value in Object.values(response)) {
|
|
1061
|
+
switch (value?.constructor?.name) {
|
|
1062
|
+
case "Blob":
|
|
1063
|
+
case "File":
|
|
1064
|
+
case "ArrayBuffer":
|
|
1065
|
+
case "FileRef":
|
|
1066
|
+
return new Response(form(response));
|
|
1067
|
+
default:
|
|
1068
|
+
break;
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
return Response.json(response, set);
|
|
1041
1072
|
case "ReadableStream":
|
|
1042
1073
|
if (!set.headers["content-type"]?.startsWith(
|
|
1043
1074
|
"text/event-stream"
|
|
@@ -1111,6 +1142,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1111
1142
|
if (response instanceof Cookie)
|
|
1112
1143
|
return new Response(response.value, set);
|
|
1113
1144
|
return new Response(response?.toString(), set);
|
|
1145
|
+
case "FormData":
|
|
1146
|
+
return new Response(response, set);
|
|
1114
1147
|
default:
|
|
1115
1148
|
if (response instanceof Response) {
|
|
1116
1149
|
let isCookieSet2 = false;
|
|
@@ -1151,6 +1184,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1151
1184
|
return response.then((x) => mapResponse(x, set));
|
|
1152
1185
|
if (response instanceof Error)
|
|
1153
1186
|
return errorToResponse(response, set);
|
|
1187
|
+
if ("toResponse" in response)
|
|
1188
|
+
return mapResponse(response.toResponse(), set);
|
|
1154
1189
|
if ("charCodeAt" in response) {
|
|
1155
1190
|
const code = response.charCodeAt(0);
|
|
1156
1191
|
if (code === 123 || code === 91) {
|
|
@@ -1170,13 +1205,24 @@ var mapResponse = (response, set, request) => {
|
|
|
1170
1205
|
return new Response(response);
|
|
1171
1206
|
case "Blob":
|
|
1172
1207
|
return handleFile(response, set);
|
|
1173
|
-
case "Object":
|
|
1174
1208
|
case "Array":
|
|
1175
|
-
return
|
|
1176
|
-
|
|
1177
|
-
|
|
1209
|
+
return Response.json(response);
|
|
1210
|
+
case "Object":
|
|
1211
|
+
for (const value in Object.values(response)) {
|
|
1212
|
+
switch (value?.constructor?.name) {
|
|
1213
|
+
case "Blob":
|
|
1214
|
+
case "File":
|
|
1215
|
+
case "ArrayBuffer":
|
|
1216
|
+
case "FileRef":
|
|
1217
|
+
return new Response(
|
|
1218
|
+
form(response),
|
|
1219
|
+
set
|
|
1220
|
+
);
|
|
1221
|
+
default:
|
|
1222
|
+
break;
|
|
1178
1223
|
}
|
|
1179
|
-
}
|
|
1224
|
+
}
|
|
1225
|
+
return Response.json(response, set);
|
|
1180
1226
|
case "ReadableStream":
|
|
1181
1227
|
request?.signal.addEventListener(
|
|
1182
1228
|
"abort",
|
|
@@ -1223,6 +1269,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1223
1269
|
if (response instanceof Cookie)
|
|
1224
1270
|
return new Response(response.value, set);
|
|
1225
1271
|
return new Response(response?.toString(), set);
|
|
1272
|
+
case "FormData":
|
|
1273
|
+
return new Response(response, set);
|
|
1226
1274
|
default:
|
|
1227
1275
|
if (response instanceof Response)
|
|
1228
1276
|
return new Response(response.body, {
|
|
@@ -1234,6 +1282,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1234
1282
|
return response.then((x) => mapResponse(x, set));
|
|
1235
1283
|
if (response instanceof Error)
|
|
1236
1284
|
return errorToResponse(response, set);
|
|
1285
|
+
if ("toResponse" in response)
|
|
1286
|
+
return mapResponse(response.toResponse(), set);
|
|
1237
1287
|
if ("charCodeAt" in response) {
|
|
1238
1288
|
const code = response.charCodeAt(0);
|
|
1239
1289
|
if (code === 123 || code === 91) {
|
|
@@ -1277,9 +1327,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1277
1327
|
return new Response(response, set);
|
|
1278
1328
|
case "Blob":
|
|
1279
1329
|
return handleFile(response, set);
|
|
1280
|
-
case "Object":
|
|
1281
1330
|
case "Array":
|
|
1282
1331
|
return Response.json(response, set);
|
|
1332
|
+
case "Object":
|
|
1333
|
+
for (const value in Object.values(response)) {
|
|
1334
|
+
switch (value?.constructor?.name) {
|
|
1335
|
+
case "Blob":
|
|
1336
|
+
case "File":
|
|
1337
|
+
case "ArrayBuffer":
|
|
1338
|
+
case "FileRef":
|
|
1339
|
+
return new Response(
|
|
1340
|
+
form(response),
|
|
1341
|
+
set
|
|
1342
|
+
);
|
|
1343
|
+
default:
|
|
1344
|
+
break;
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
return Response.json(response, set);
|
|
1283
1348
|
case "ReadableStream":
|
|
1284
1349
|
if (!set.headers["content-type"]?.startsWith(
|
|
1285
1350
|
"text/event-stream"
|
|
@@ -1351,6 +1416,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1351
1416
|
response.toString(),
|
|
1352
1417
|
set
|
|
1353
1418
|
);
|
|
1419
|
+
case "FormData":
|
|
1420
|
+
return new Response(response);
|
|
1354
1421
|
case "Cookie":
|
|
1355
1422
|
if (response instanceof Cookie)
|
|
1356
1423
|
return new Response(response.value, set);
|
|
@@ -1391,6 +1458,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1391
1458
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1392
1459
|
if (response instanceof Error)
|
|
1393
1460
|
return errorToResponse(response, set);
|
|
1461
|
+
if ("toResponse" in response)
|
|
1462
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1394
1463
|
if ("charCodeAt" in response) {
|
|
1395
1464
|
const code = response.charCodeAt(0);
|
|
1396
1465
|
if (code === 123 || code === 91) {
|
|
@@ -1410,13 +1479,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1410
1479
|
return new Response(response);
|
|
1411
1480
|
case "Blob":
|
|
1412
1481
|
return handleFile(response, set);
|
|
1413
|
-
case "Object":
|
|
1414
1482
|
case "Array":
|
|
1415
|
-
return
|
|
1416
|
-
|
|
1417
|
-
|
|
1483
|
+
return Response.json(response);
|
|
1484
|
+
case "Object":
|
|
1485
|
+
for (const value in Object.values(response)) {
|
|
1486
|
+
switch (value?.constructor?.name) {
|
|
1487
|
+
case "Blob":
|
|
1488
|
+
case "File":
|
|
1489
|
+
case "ArrayBuffer":
|
|
1490
|
+
case "FileRef":
|
|
1491
|
+
return new Response(
|
|
1492
|
+
form(response),
|
|
1493
|
+
set
|
|
1494
|
+
);
|
|
1495
|
+
default:
|
|
1496
|
+
break;
|
|
1418
1497
|
}
|
|
1419
|
-
}
|
|
1498
|
+
}
|
|
1499
|
+
return Response.json(response, set);
|
|
1420
1500
|
case "ReadableStream":
|
|
1421
1501
|
request?.signal.addEventListener(
|
|
1422
1502
|
"abort",
|
|
@@ -1462,6 +1542,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1462
1542
|
if (response instanceof Cookie)
|
|
1463
1543
|
return new Response(response.value, set);
|
|
1464
1544
|
return new Response(response?.toString(), set);
|
|
1545
|
+
case "FormData":
|
|
1546
|
+
return new Response(response);
|
|
1465
1547
|
default:
|
|
1466
1548
|
if (response instanceof Response)
|
|
1467
1549
|
return new Response(response.body, {
|
|
@@ -1473,6 +1555,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1473
1555
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1474
1556
|
if (response instanceof Error)
|
|
1475
1557
|
return errorToResponse(response, set);
|
|
1558
|
+
if ("toResponse" in response)
|
|
1559
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1476
1560
|
if ("charCodeAt" in response) {
|
|
1477
1561
|
const code = response.charCodeAt(0);
|
|
1478
1562
|
if (code === 123 || code === 91) {
|
|
@@ -1501,13 +1585,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1501
1585
|
return new Response(response);
|
|
1502
1586
|
case "Blob":
|
|
1503
1587
|
return handleFile(response);
|
|
1504
|
-
case "Object":
|
|
1505
1588
|
case "Array":
|
|
1506
|
-
return
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1589
|
+
return Response.json(response);
|
|
1590
|
+
case "Object":
|
|
1591
|
+
form:
|
|
1592
|
+
for (const value of Object.values(response))
|
|
1593
|
+
switch (value?.constructor?.name) {
|
|
1594
|
+
case "Blob":
|
|
1595
|
+
case "File":
|
|
1596
|
+
case "ArrayBuffer":
|
|
1597
|
+
case "FileRef":
|
|
1598
|
+
return new Response(form(response));
|
|
1599
|
+
case "Object":
|
|
1600
|
+
break form;
|
|
1601
|
+
default:
|
|
1602
|
+
break;
|
|
1603
|
+
}
|
|
1604
|
+
return Response.json(response);
|
|
1511
1605
|
case "ReadableStream":
|
|
1512
1606
|
request?.signal.addEventListener(
|
|
1513
1607
|
"abort",
|
|
@@ -1547,6 +1641,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1547
1641
|
case "Number":
|
|
1548
1642
|
case "Boolean":
|
|
1549
1643
|
return new Response(response.toString());
|
|
1644
|
+
case "FormData":
|
|
1645
|
+
return new Response(response);
|
|
1550
1646
|
default:
|
|
1551
1647
|
if (response instanceof Response)
|
|
1552
1648
|
return new Response(response.body, {
|
|
@@ -1558,6 +1654,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1558
1654
|
return response.then(mapCompactResponse);
|
|
1559
1655
|
if (response instanceof Error)
|
|
1560
1656
|
return errorToResponse(response);
|
|
1657
|
+
if ("toResponse" in response)
|
|
1658
|
+
return mapCompactResponse(response.toResponse());
|
|
1561
1659
|
if ("charCodeAt" in response) {
|
|
1562
1660
|
const code = response.charCodeAt(0);
|
|
1563
1661
|
if (code === 123 || code === 91) {
|
|
@@ -1638,11 +1736,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1638
1736
|
break;
|
|
1639
1737
|
case "multipart/form-data":
|
|
1640
1738
|
body = {};
|
|
1641
|
-
const
|
|
1642
|
-
for (const key of
|
|
1739
|
+
const form2 = await request.formData();
|
|
1740
|
+
for (const key of form2.keys()) {
|
|
1643
1741
|
if (body[key])
|
|
1644
1742
|
continue;
|
|
1645
|
-
const value =
|
|
1743
|
+
const value = form2.getAll(key);
|
|
1646
1744
|
if (value.length === 1)
|
|
1647
1745
|
body[key] = value[0];
|
|
1648
1746
|
else
|
|
@@ -1684,11 +1782,11 @@ var createDynamicHandler = (app) => async (request) => {
|
|
|
1684
1782
|
break;
|
|
1685
1783
|
case "multipart/form-data":
|
|
1686
1784
|
body = {};
|
|
1687
|
-
const
|
|
1688
|
-
for (const key of
|
|
1785
|
+
const form2 = await request.formData();
|
|
1786
|
+
for (const key of form2.keys()) {
|
|
1689
1787
|
if (body[key])
|
|
1690
1788
|
continue;
|
|
1691
|
-
const value =
|
|
1789
|
+
const value = form2.getAll(key);
|
|
1692
1790
|
if (value.length === 1)
|
|
1693
1791
|
body[key] = value[0];
|
|
1694
1792
|
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;
|
package/dist/cjs/handler.js
CHANGED
|
@@ -472,7 +472,7 @@ var validateFile = (options, value) => {
|
|
|
472
472
|
}
|
|
473
473
|
return true;
|
|
474
474
|
};
|
|
475
|
-
var
|
|
475
|
+
var File2 = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type("File", validateFile);
|
|
476
476
|
var Files = import_typebox.TypeRegistry.Get("Files") ?? import_system.TypeSystem.Type(
|
|
477
477
|
"Files",
|
|
478
478
|
(options, value) => {
|
|
@@ -618,7 +618,7 @@ var ElysiaType = {
|
|
|
618
618
|
return JSON.stringify(value);
|
|
619
619
|
});
|
|
620
620
|
},
|
|
621
|
-
File,
|
|
621
|
+
File: File2,
|
|
622
622
|
Files: (options = {}) => t.Transform(Files(options)).Decode((value) => {
|
|
623
623
|
if (Array.isArray(value))
|
|
624
624
|
return value;
|
|
@@ -780,6 +780,24 @@ var InvertedStatusMap = Object.fromEntries(
|
|
|
780
780
|
Object.entries(StatusMap).map(([k, v]) => [v, k])
|
|
781
781
|
);
|
|
782
782
|
var encoder = new TextEncoder();
|
|
783
|
+
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData");
|
|
784
|
+
var form = (items) => {
|
|
785
|
+
const formData = new FormData();
|
|
786
|
+
for (const [key, value] of Object.entries(items)) {
|
|
787
|
+
if (Array.isArray(value)) {
|
|
788
|
+
for (const v of value) {
|
|
789
|
+
if (value instanceof File)
|
|
790
|
+
formData.append(key, value, value.name);
|
|
791
|
+
formData.append(key, v);
|
|
792
|
+
}
|
|
793
|
+
continue;
|
|
794
|
+
}
|
|
795
|
+
if (value instanceof File)
|
|
796
|
+
formData.append(key, value, value.name);
|
|
797
|
+
formData.append(key, value);
|
|
798
|
+
}
|
|
799
|
+
return formData;
|
|
800
|
+
};
|
|
783
801
|
|
|
784
802
|
// src/handler.ts
|
|
785
803
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
@@ -887,9 +905,21 @@ var mapResponse = (response, set, request) => {
|
|
|
887
905
|
return new Response(response, set);
|
|
888
906
|
case "Blob":
|
|
889
907
|
return handleFile(response, set);
|
|
890
|
-
case "Object":
|
|
891
908
|
case "Array":
|
|
892
909
|
return Response.json(response, set);
|
|
910
|
+
case "Object":
|
|
911
|
+
for (const value in Object.values(response)) {
|
|
912
|
+
switch (value?.constructor?.name) {
|
|
913
|
+
case "Blob":
|
|
914
|
+
case "File":
|
|
915
|
+
case "ArrayBuffer":
|
|
916
|
+
case "FileRef":
|
|
917
|
+
return new Response(form(response));
|
|
918
|
+
default:
|
|
919
|
+
break;
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
return Response.json(response, set);
|
|
893
923
|
case "ReadableStream":
|
|
894
924
|
if (!set.headers["content-type"]?.startsWith(
|
|
895
925
|
"text/event-stream"
|
|
@@ -963,6 +993,8 @@ var mapResponse = (response, set, request) => {
|
|
|
963
993
|
if (response instanceof Cookie)
|
|
964
994
|
return new Response(response.value, set);
|
|
965
995
|
return new Response(response?.toString(), set);
|
|
996
|
+
case "FormData":
|
|
997
|
+
return new Response(response, set);
|
|
966
998
|
default:
|
|
967
999
|
if (response instanceof Response) {
|
|
968
1000
|
let isCookieSet2 = false;
|
|
@@ -1003,6 +1035,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1003
1035
|
return response.then((x) => mapResponse(x, set));
|
|
1004
1036
|
if (response instanceof Error)
|
|
1005
1037
|
return errorToResponse(response, set);
|
|
1038
|
+
if ("toResponse" in response)
|
|
1039
|
+
return mapResponse(response.toResponse(), set);
|
|
1006
1040
|
if ("charCodeAt" in response) {
|
|
1007
1041
|
const code = response.charCodeAt(0);
|
|
1008
1042
|
if (code === 123 || code === 91) {
|
|
@@ -1022,13 +1056,24 @@ var mapResponse = (response, set, request) => {
|
|
|
1022
1056
|
return new Response(response);
|
|
1023
1057
|
case "Blob":
|
|
1024
1058
|
return handleFile(response, set);
|
|
1025
|
-
case "Object":
|
|
1026
1059
|
case "Array":
|
|
1027
|
-
return
|
|
1028
|
-
|
|
1029
|
-
|
|
1060
|
+
return Response.json(response);
|
|
1061
|
+
case "Object":
|
|
1062
|
+
for (const value in Object.values(response)) {
|
|
1063
|
+
switch (value?.constructor?.name) {
|
|
1064
|
+
case "Blob":
|
|
1065
|
+
case "File":
|
|
1066
|
+
case "ArrayBuffer":
|
|
1067
|
+
case "FileRef":
|
|
1068
|
+
return new Response(
|
|
1069
|
+
form(response),
|
|
1070
|
+
set
|
|
1071
|
+
);
|
|
1072
|
+
default:
|
|
1073
|
+
break;
|
|
1030
1074
|
}
|
|
1031
|
-
}
|
|
1075
|
+
}
|
|
1076
|
+
return Response.json(response, set);
|
|
1032
1077
|
case "ReadableStream":
|
|
1033
1078
|
request?.signal.addEventListener(
|
|
1034
1079
|
"abort",
|
|
@@ -1075,6 +1120,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1075
1120
|
if (response instanceof Cookie)
|
|
1076
1121
|
return new Response(response.value, set);
|
|
1077
1122
|
return new Response(response?.toString(), set);
|
|
1123
|
+
case "FormData":
|
|
1124
|
+
return new Response(response, set);
|
|
1078
1125
|
default:
|
|
1079
1126
|
if (response instanceof Response)
|
|
1080
1127
|
return new Response(response.body, {
|
|
@@ -1086,6 +1133,8 @@ var mapResponse = (response, set, request) => {
|
|
|
1086
1133
|
return response.then((x) => mapResponse(x, set));
|
|
1087
1134
|
if (response instanceof Error)
|
|
1088
1135
|
return errorToResponse(response, set);
|
|
1136
|
+
if ("toResponse" in response)
|
|
1137
|
+
return mapResponse(response.toResponse(), set);
|
|
1089
1138
|
if ("charCodeAt" in response) {
|
|
1090
1139
|
const code = response.charCodeAt(0);
|
|
1091
1140
|
if (code === 123 || code === 91) {
|
|
@@ -1129,9 +1178,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1129
1178
|
return new Response(response, set);
|
|
1130
1179
|
case "Blob":
|
|
1131
1180
|
return handleFile(response, set);
|
|
1132
|
-
case "Object":
|
|
1133
1181
|
case "Array":
|
|
1134
1182
|
return Response.json(response, set);
|
|
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;
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
return Response.json(response, set);
|
|
1135
1199
|
case "ReadableStream":
|
|
1136
1200
|
if (!set.headers["content-type"]?.startsWith(
|
|
1137
1201
|
"text/event-stream"
|
|
@@ -1203,6 +1267,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1203
1267
|
response.toString(),
|
|
1204
1268
|
set
|
|
1205
1269
|
);
|
|
1270
|
+
case "FormData":
|
|
1271
|
+
return new Response(response);
|
|
1206
1272
|
case "Cookie":
|
|
1207
1273
|
if (response instanceof Cookie)
|
|
1208
1274
|
return new Response(response.value, set);
|
|
@@ -1243,6 +1309,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1243
1309
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1244
1310
|
if (response instanceof Error)
|
|
1245
1311
|
return errorToResponse(response, set);
|
|
1312
|
+
if ("toResponse" in response)
|
|
1313
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1246
1314
|
if ("charCodeAt" in response) {
|
|
1247
1315
|
const code = response.charCodeAt(0);
|
|
1248
1316
|
if (code === 123 || code === 91) {
|
|
@@ -1262,13 +1330,24 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1262
1330
|
return new Response(response);
|
|
1263
1331
|
case "Blob":
|
|
1264
1332
|
return handleFile(response, set);
|
|
1265
|
-
case "Object":
|
|
1266
1333
|
case "Array":
|
|
1267
|
-
return
|
|
1268
|
-
|
|
1269
|
-
|
|
1334
|
+
return Response.json(response);
|
|
1335
|
+
case "Object":
|
|
1336
|
+
for (const value in Object.values(response)) {
|
|
1337
|
+
switch (value?.constructor?.name) {
|
|
1338
|
+
case "Blob":
|
|
1339
|
+
case "File":
|
|
1340
|
+
case "ArrayBuffer":
|
|
1341
|
+
case "FileRef":
|
|
1342
|
+
return new Response(
|
|
1343
|
+
form(response),
|
|
1344
|
+
set
|
|
1345
|
+
);
|
|
1346
|
+
default:
|
|
1347
|
+
break;
|
|
1270
1348
|
}
|
|
1271
|
-
}
|
|
1349
|
+
}
|
|
1350
|
+
return Response.json(response, set);
|
|
1272
1351
|
case "ReadableStream":
|
|
1273
1352
|
request?.signal.addEventListener(
|
|
1274
1353
|
"abort",
|
|
@@ -1314,6 +1393,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1314
1393
|
if (response instanceof Cookie)
|
|
1315
1394
|
return new Response(response.value, set);
|
|
1316
1395
|
return new Response(response?.toString(), set);
|
|
1396
|
+
case "FormData":
|
|
1397
|
+
return new Response(response);
|
|
1317
1398
|
default:
|
|
1318
1399
|
if (response instanceof Response)
|
|
1319
1400
|
return new Response(response.body, {
|
|
@@ -1325,6 +1406,8 @@ var mapEarlyResponse = (response, set, request) => {
|
|
|
1325
1406
|
return response.then((x) => mapEarlyResponse(x, set));
|
|
1326
1407
|
if (response instanceof Error)
|
|
1327
1408
|
return errorToResponse(response, set);
|
|
1409
|
+
if ("toResponse" in response)
|
|
1410
|
+
return mapEarlyResponse(response.toResponse(), set);
|
|
1328
1411
|
if ("charCodeAt" in response) {
|
|
1329
1412
|
const code = response.charCodeAt(0);
|
|
1330
1413
|
if (code === 123 || code === 91) {
|
|
@@ -1353,13 +1436,23 @@ var mapCompactResponse = (response, request) => {
|
|
|
1353
1436
|
return new Response(response);
|
|
1354
1437
|
case "Blob":
|
|
1355
1438
|
return handleFile(response);
|
|
1356
|
-
case "Object":
|
|
1357
1439
|
case "Array":
|
|
1358
|
-
return
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1440
|
+
return Response.json(response);
|
|
1441
|
+
case "Object":
|
|
1442
|
+
form:
|
|
1443
|
+
for (const value of Object.values(response))
|
|
1444
|
+
switch (value?.constructor?.name) {
|
|
1445
|
+
case "Blob":
|
|
1446
|
+
case "File":
|
|
1447
|
+
case "ArrayBuffer":
|
|
1448
|
+
case "FileRef":
|
|
1449
|
+
return new Response(form(response));
|
|
1450
|
+
case "Object":
|
|
1451
|
+
break form;
|
|
1452
|
+
default:
|
|
1453
|
+
break;
|
|
1454
|
+
}
|
|
1455
|
+
return Response.json(response);
|
|
1363
1456
|
case "ReadableStream":
|
|
1364
1457
|
request?.signal.addEventListener(
|
|
1365
1458
|
"abort",
|
|
@@ -1399,6 +1492,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1399
1492
|
case "Number":
|
|
1400
1493
|
case "Boolean":
|
|
1401
1494
|
return new Response(response.toString());
|
|
1495
|
+
case "FormData":
|
|
1496
|
+
return new Response(response);
|
|
1402
1497
|
default:
|
|
1403
1498
|
if (response instanceof Response)
|
|
1404
1499
|
return new Response(response.body, {
|
|
@@ -1410,6 +1505,8 @@ var mapCompactResponse = (response, request) => {
|
|
|
1410
1505
|
return response.then(mapCompactResponse);
|
|
1411
1506
|
if (response instanceof Error)
|
|
1412
1507
|
return errorToResponse(response);
|
|
1508
|
+
if ("toResponse" in response)
|
|
1509
|
+
return mapCompactResponse(response.toResponse());
|
|
1413
1510
|
if ("charCodeAt" in response) {
|
|
1414
1511
|
const code = response.charCodeAt(0);
|
|
1415
1512
|
if (code === 123 || code === 91) {
|
package/dist/cjs/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';
|