elysia 1.3.7 → 1.3.8
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/adapter/bun/compose.mjs +30 -40
- package/dist/adapter/bun/handler-native.mjs +30 -40
- package/dist/adapter/bun/handler.mjs +30 -40
- package/dist/adapter/bun/index.mjs +45 -47
- package/dist/adapter/types.d.ts +1 -1
- package/dist/adapter/utils.mjs +30 -40
- package/dist/adapter/web-standard/handler.mjs +43 -45
- package/dist/adapter/web-standard/index.mjs +43 -45
- package/dist/bun/index.js +4 -4
- package/dist/bun/index.js.map +6 -6
- package/dist/cjs/adapter/bun/compose.js +30 -40
- package/dist/cjs/adapter/bun/handler-native.js +30 -40
- package/dist/cjs/adapter/bun/handler.js +30 -40
- package/dist/cjs/adapter/bun/index.js +45 -47
- package/dist/cjs/adapter/utils.js +30 -40
- package/dist/cjs/adapter/web-standard/handler.js +43 -45
- package/dist/cjs/adapter/web-standard/index.js +43 -45
- package/dist/cjs/index.js +47 -49
- package/dist/cjs/schema.d.ts +1 -1
- package/dist/cjs/types.d.ts +7 -3
- package/dist/index.mjs +47 -49
- package/dist/schema.d.ts +1 -1
- package/dist/types.d.ts +7 -3
- package/package.json +1 -1
|
@@ -1404,49 +1404,39 @@ var createOnRequestHandler = (app, addFn) => {
|
|
|
1404
1404
|
var handleFile = (response, set2) => {
|
|
1405
1405
|
if (!isBun && response instanceof Promise)
|
|
1406
1406
|
return response.then((res) => handleFile(res, set2));
|
|
1407
|
-
let size = response.size
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
if (hasHeaderShorthand)
|
|
1417
|
-
setHeaders = set2.headers.toJSON();
|
|
1418
|
-
else {
|
|
1419
|
-
setHeaders = {};
|
|
1420
|
-
for (let [key, value] of set2.headers.entries())
|
|
1421
|
-
key in set2.headers && (setHeaders[key] = value);
|
|
1422
|
-
}
|
|
1423
|
-
return new Response(response, {
|
|
1424
|
-
status: set2.status,
|
|
1425
|
-
headers: setHeaders
|
|
1426
|
-
});
|
|
1427
|
-
}
|
|
1428
|
-
if (isNotEmpty(set2.headers))
|
|
1429
|
-
return new Response(response, {
|
|
1430
|
-
status: set2.status,
|
|
1431
|
-
headers: Object.assign(
|
|
1432
|
-
{
|
|
1433
|
-
"accept-ranges": "bytes",
|
|
1434
|
-
"content-range": `bytes 0-${size - 1}/${size}`,
|
|
1435
|
-
"transfer-encoding": "chunked"
|
|
1436
|
-
},
|
|
1437
|
-
set2.headers
|
|
1438
|
-
)
|
|
1439
|
-
});
|
|
1440
|
-
}
|
|
1407
|
+
let size = response.size, immutable = set2 && (set2.status === 206 || set2.status === 304 || set2.status === 412 || set2.status === 416), defaultHeader = immutable ? {
|
|
1408
|
+
"transfer-encoding": "chunked"
|
|
1409
|
+
} : {
|
|
1410
|
+
"accept-ranges": "bytes",
|
|
1411
|
+
"content-range": size ? `bytes 0-${size - 1}/${size}` : void 0,
|
|
1412
|
+
"transfer-encoding": "chunked"
|
|
1413
|
+
};
|
|
1414
|
+
if (!set2 && !size) return new Response(response);
|
|
1415
|
+
if (!set2)
|
|
1441
1416
|
return new Response(response, {
|
|
1442
|
-
headers:
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1417
|
+
headers: defaultHeader
|
|
1418
|
+
});
|
|
1419
|
+
if (set2.headers instanceof Headers) {
|
|
1420
|
+
let setHeaders = defaultHeader;
|
|
1421
|
+
if (hasHeaderShorthand)
|
|
1422
|
+
setHeaders = set2.headers.toJSON();
|
|
1423
|
+
else {
|
|
1424
|
+
setHeaders = {};
|
|
1425
|
+
for (let [key, value] of set2.headers.entries())
|
|
1426
|
+
key in set2.headers && (setHeaders[key] = value);
|
|
1427
|
+
}
|
|
1428
|
+
return immutable && (delete set2.headers["content-length"], delete set2.headers["accept-ranges"]), new Response(response, {
|
|
1429
|
+
status: set2.status,
|
|
1430
|
+
headers: setHeaders
|
|
1447
1431
|
});
|
|
1448
1432
|
}
|
|
1449
|
-
return new Response(response
|
|
1433
|
+
return isNotEmpty(set2.headers) ? new Response(response, {
|
|
1434
|
+
status: set2.status,
|
|
1435
|
+
headers: Object.assign(defaultHeader, set2.headers)
|
|
1436
|
+
}) : new Response(response, {
|
|
1437
|
+
status: set2.status,
|
|
1438
|
+
headers: defaultHeader
|
|
1439
|
+
});
|
|
1450
1440
|
}, parseSetCookies = (headers, setCookie) => {
|
|
1451
1441
|
if (!headers) return headers;
|
|
1452
1442
|
headers.delete("set-cookie");
|
|
@@ -262,49 +262,39 @@ var serializeCookie = (cookies) => {
|
|
|
262
262
|
var handleFile = (response, set2) => {
|
|
263
263
|
if (!isBun && response instanceof Promise)
|
|
264
264
|
return response.then((res) => handleFile(res, set2));
|
|
265
|
-
let size = response.size
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if (hasHeaderShorthand)
|
|
275
|
-
setHeaders = set2.headers.toJSON();
|
|
276
|
-
else {
|
|
277
|
-
setHeaders = {};
|
|
278
|
-
for (let [key, value] of set2.headers.entries())
|
|
279
|
-
key in set2.headers && (setHeaders[key] = value);
|
|
280
|
-
}
|
|
281
|
-
return new Response(response, {
|
|
282
|
-
status: set2.status,
|
|
283
|
-
headers: setHeaders
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
if (isNotEmpty(set2.headers))
|
|
287
|
-
return new Response(response, {
|
|
288
|
-
status: set2.status,
|
|
289
|
-
headers: Object.assign(
|
|
290
|
-
{
|
|
291
|
-
"accept-ranges": "bytes",
|
|
292
|
-
"content-range": `bytes 0-${size - 1}/${size}`,
|
|
293
|
-
"transfer-encoding": "chunked"
|
|
294
|
-
},
|
|
295
|
-
set2.headers
|
|
296
|
-
)
|
|
297
|
-
});
|
|
298
|
-
}
|
|
265
|
+
let size = response.size, immutable = set2 && (set2.status === 206 || set2.status === 304 || set2.status === 412 || set2.status === 416), defaultHeader = immutable ? {
|
|
266
|
+
"transfer-encoding": "chunked"
|
|
267
|
+
} : {
|
|
268
|
+
"accept-ranges": "bytes",
|
|
269
|
+
"content-range": size ? `bytes 0-${size - 1}/${size}` : void 0,
|
|
270
|
+
"transfer-encoding": "chunked"
|
|
271
|
+
};
|
|
272
|
+
if (!set2 && !size) return new Response(response);
|
|
273
|
+
if (!set2)
|
|
299
274
|
return new Response(response, {
|
|
300
|
-
headers:
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
275
|
+
headers: defaultHeader
|
|
276
|
+
});
|
|
277
|
+
if (set2.headers instanceof Headers) {
|
|
278
|
+
let setHeaders = defaultHeader;
|
|
279
|
+
if (hasHeaderShorthand)
|
|
280
|
+
setHeaders = set2.headers.toJSON();
|
|
281
|
+
else {
|
|
282
|
+
setHeaders = {};
|
|
283
|
+
for (let [key, value] of set2.headers.entries())
|
|
284
|
+
key in set2.headers && (setHeaders[key] = value);
|
|
285
|
+
}
|
|
286
|
+
return immutable && (delete set2.headers["content-length"], delete set2.headers["accept-ranges"]), new Response(response, {
|
|
287
|
+
status: set2.status,
|
|
288
|
+
headers: setHeaders
|
|
305
289
|
});
|
|
306
290
|
}
|
|
307
|
-
return new Response(response
|
|
291
|
+
return isNotEmpty(set2.headers) ? new Response(response, {
|
|
292
|
+
status: set2.status,
|
|
293
|
+
headers: Object.assign(defaultHeader, set2.headers)
|
|
294
|
+
}) : new Response(response, {
|
|
295
|
+
status: set2.status,
|
|
296
|
+
headers: defaultHeader
|
|
297
|
+
});
|
|
308
298
|
}, parseSetCookies = (headers, setCookie) => {
|
|
309
299
|
if (!headers) return headers;
|
|
310
300
|
headers.delete("set-cookie");
|
|
@@ -262,49 +262,39 @@ var serializeCookie = (cookies) => {
|
|
|
262
262
|
var handleFile = (response, set2) => {
|
|
263
263
|
if (!isBun && response instanceof Promise)
|
|
264
264
|
return response.then((res) => handleFile(res, set2));
|
|
265
|
-
let size = response.size
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if (hasHeaderShorthand)
|
|
275
|
-
setHeaders = set2.headers.toJSON();
|
|
276
|
-
else {
|
|
277
|
-
setHeaders = {};
|
|
278
|
-
for (let [key, value] of set2.headers.entries())
|
|
279
|
-
key in set2.headers && (setHeaders[key] = value);
|
|
280
|
-
}
|
|
281
|
-
return new Response(response, {
|
|
282
|
-
status: set2.status,
|
|
283
|
-
headers: setHeaders
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
if (isNotEmpty(set2.headers))
|
|
287
|
-
return new Response(response, {
|
|
288
|
-
status: set2.status,
|
|
289
|
-
headers: Object.assign(
|
|
290
|
-
{
|
|
291
|
-
"accept-ranges": "bytes",
|
|
292
|
-
"content-range": `bytes 0-${size - 1}/${size}`,
|
|
293
|
-
"transfer-encoding": "chunked"
|
|
294
|
-
},
|
|
295
|
-
set2.headers
|
|
296
|
-
)
|
|
297
|
-
});
|
|
298
|
-
}
|
|
265
|
+
let size = response.size, immutable = set2 && (set2.status === 206 || set2.status === 304 || set2.status === 412 || set2.status === 416), defaultHeader = immutable ? {
|
|
266
|
+
"transfer-encoding": "chunked"
|
|
267
|
+
} : {
|
|
268
|
+
"accept-ranges": "bytes",
|
|
269
|
+
"content-range": size ? `bytes 0-${size - 1}/${size}` : void 0,
|
|
270
|
+
"transfer-encoding": "chunked"
|
|
271
|
+
};
|
|
272
|
+
if (!set2 && !size) return new Response(response);
|
|
273
|
+
if (!set2)
|
|
299
274
|
return new Response(response, {
|
|
300
|
-
headers:
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
275
|
+
headers: defaultHeader
|
|
276
|
+
});
|
|
277
|
+
if (set2.headers instanceof Headers) {
|
|
278
|
+
let setHeaders = defaultHeader;
|
|
279
|
+
if (hasHeaderShorthand)
|
|
280
|
+
setHeaders = set2.headers.toJSON();
|
|
281
|
+
else {
|
|
282
|
+
setHeaders = {};
|
|
283
|
+
for (let [key, value] of set2.headers.entries())
|
|
284
|
+
key in set2.headers && (setHeaders[key] = value);
|
|
285
|
+
}
|
|
286
|
+
return immutable && (delete set2.headers["content-length"], delete set2.headers["accept-ranges"]), new Response(response, {
|
|
287
|
+
status: set2.status,
|
|
288
|
+
headers: setHeaders
|
|
305
289
|
});
|
|
306
290
|
}
|
|
307
|
-
return new Response(response
|
|
291
|
+
return isNotEmpty(set2.headers) ? new Response(response, {
|
|
292
|
+
status: set2.status,
|
|
293
|
+
headers: Object.assign(defaultHeader, set2.headers)
|
|
294
|
+
}) : new Response(response, {
|
|
295
|
+
status: set2.status,
|
|
296
|
+
headers: defaultHeader
|
|
297
|
+
});
|
|
308
298
|
}, parseSetCookies = (headers, setCookie) => {
|
|
309
299
|
if (!headers) return headers;
|
|
310
300
|
headers.delete("set-cookie");
|
|
@@ -6,7 +6,7 @@ import decode from "fast-decode-uri-component";
|
|
|
6
6
|
var isBun = typeof Bun < "u";
|
|
7
7
|
|
|
8
8
|
// src/universal/file.ts
|
|
9
|
-
var
|
|
9
|
+
var mime2 = {
|
|
10
10
|
aac: "audio/aac",
|
|
11
11
|
abw: "application/x-abiword",
|
|
12
12
|
ai: "application/postscript",
|
|
@@ -103,7 +103,7 @@ var createReadStream, stat, ElysiaFile = class {
|
|
|
103
103
|
get type() {
|
|
104
104
|
return (
|
|
105
105
|
// @ts-ignore
|
|
106
|
-
|
|
106
|
+
mime2[getFileExtension(this.path)] || "application/octet-stream"
|
|
107
107
|
);
|
|
108
108
|
}
|
|
109
109
|
get length() {
|
|
@@ -529,49 +529,39 @@ var serializeCookie = (cookies) => {
|
|
|
529
529
|
var handleFile = (response, set2) => {
|
|
530
530
|
if (!isBun && response instanceof Promise)
|
|
531
531
|
return response.then((res) => handleFile(res, set2));
|
|
532
|
-
let size = response.size
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
if (hasHeaderShorthand)
|
|
542
|
-
setHeaders = set2.headers.toJSON();
|
|
543
|
-
else {
|
|
544
|
-
setHeaders = {};
|
|
545
|
-
for (let [key, value] of set2.headers.entries())
|
|
546
|
-
key in set2.headers && (setHeaders[key] = value);
|
|
547
|
-
}
|
|
548
|
-
return new Response(response, {
|
|
549
|
-
status: set2.status,
|
|
550
|
-
headers: setHeaders
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
if (isNotEmpty(set2.headers))
|
|
554
|
-
return new Response(response, {
|
|
555
|
-
status: set2.status,
|
|
556
|
-
headers: Object.assign(
|
|
557
|
-
{
|
|
558
|
-
"accept-ranges": "bytes",
|
|
559
|
-
"content-range": `bytes 0-${size - 1}/${size}`,
|
|
560
|
-
"transfer-encoding": "chunked"
|
|
561
|
-
},
|
|
562
|
-
set2.headers
|
|
563
|
-
)
|
|
564
|
-
});
|
|
565
|
-
}
|
|
532
|
+
let size = response.size, immutable = set2 && (set2.status === 206 || set2.status === 304 || set2.status === 412 || set2.status === 416), defaultHeader = immutable ? {
|
|
533
|
+
"transfer-encoding": "chunked"
|
|
534
|
+
} : {
|
|
535
|
+
"accept-ranges": "bytes",
|
|
536
|
+
"content-range": size ? `bytes 0-${size - 1}/${size}` : void 0,
|
|
537
|
+
"transfer-encoding": "chunked"
|
|
538
|
+
};
|
|
539
|
+
if (!set2 && !size) return new Response(response);
|
|
540
|
+
if (!set2)
|
|
566
541
|
return new Response(response, {
|
|
567
|
-
headers:
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
542
|
+
headers: defaultHeader
|
|
543
|
+
});
|
|
544
|
+
if (set2.headers instanceof Headers) {
|
|
545
|
+
let setHeaders = defaultHeader;
|
|
546
|
+
if (hasHeaderShorthand)
|
|
547
|
+
setHeaders = set2.headers.toJSON();
|
|
548
|
+
else {
|
|
549
|
+
setHeaders = {};
|
|
550
|
+
for (let [key, value] of set2.headers.entries())
|
|
551
|
+
key in set2.headers && (setHeaders[key] = value);
|
|
552
|
+
}
|
|
553
|
+
return immutable && (delete set2.headers["content-length"], delete set2.headers["accept-ranges"]), new Response(response, {
|
|
554
|
+
status: set2.status,
|
|
555
|
+
headers: setHeaders
|
|
572
556
|
});
|
|
573
557
|
}
|
|
574
|
-
return new Response(response
|
|
558
|
+
return isNotEmpty(set2.headers) ? new Response(response, {
|
|
559
|
+
status: set2.status,
|
|
560
|
+
headers: Object.assign(defaultHeader, set2.headers)
|
|
561
|
+
}) : new Response(response, {
|
|
562
|
+
status: set2.status,
|
|
563
|
+
headers: defaultHeader
|
|
564
|
+
});
|
|
575
565
|
}, parseSetCookies = (headers, setCookie) => {
|
|
576
566
|
if (!headers) return headers;
|
|
577
567
|
headers.delete("set-cookie");
|
|
@@ -746,7 +736,15 @@ var handleSet = (set2) => {
|
|
|
746
736
|
};
|
|
747
737
|
|
|
748
738
|
// src/adapter/web-standard/handler.ts
|
|
749
|
-
var
|
|
739
|
+
var handleElysiaFile = (file, set2 = {
|
|
740
|
+
headers: {}
|
|
741
|
+
}) => {
|
|
742
|
+
let path = file.path, contentType = mime[path.slice(path.lastIndexOf(".") + 1)];
|
|
743
|
+
return contentType && (set2.headers["content-type"] = contentType), file.stats && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416 ? file.stats.then((stat2) => {
|
|
744
|
+
let size = stat2.size;
|
|
745
|
+
return size !== void 0 && (set2.headers["content-range"] = `bytes 0-${size - 1}/${size}`, set2.headers["content-length"] = size), handleFile(file.value, set2);
|
|
746
|
+
}) : handleFile(file.value, set2);
|
|
747
|
+
}, mapResponse = (response, set2, request) => {
|
|
750
748
|
if (isNotEmpty(set2.headers) || set2.status !== 200 || set2.cookie)
|
|
751
749
|
switch (handleSet(set2), response?.constructor?.name) {
|
|
752
750
|
case "String":
|
|
@@ -755,7 +753,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
755
753
|
case "Object":
|
|
756
754
|
return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
|
|
757
755
|
case "ElysiaFile":
|
|
758
|
-
return
|
|
756
|
+
return handleElysiaFile(response, set2);
|
|
759
757
|
case "File":
|
|
760
758
|
return handleFile(response, set2);
|
|
761
759
|
case "Blob":
|
|
@@ -849,7 +847,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
849
847
|
case "Object":
|
|
850
848
|
return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
|
|
851
849
|
case "ElysiaFile":
|
|
852
|
-
return
|
|
850
|
+
return handleElysiaFile(response, set2);
|
|
853
851
|
case "File":
|
|
854
852
|
return handleFile(response, set2);
|
|
855
853
|
case "Blob":
|
|
@@ -933,7 +931,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
933
931
|
case "Object":
|
|
934
932
|
return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
|
|
935
933
|
case "ElysiaFile":
|
|
936
|
-
return
|
|
934
|
+
return handleElysiaFile(response, set2);
|
|
937
935
|
case "File":
|
|
938
936
|
return handleFile(response, set2);
|
|
939
937
|
case "Blob":
|
|
@@ -1032,7 +1030,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
1032
1030
|
}
|
|
1033
1031
|
});
|
|
1034
1032
|
case "ElysiaFile":
|
|
1035
|
-
return
|
|
1033
|
+
return handleElysiaFile(response);
|
|
1036
1034
|
case "File":
|
|
1037
1035
|
return handleFile(response);
|
|
1038
1036
|
case "Blob":
|
package/dist/adapter/types.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface ElysiaAdapter {
|
|
|
21
21
|
* app.stop(true) // Abruptly any requests inflight
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
stop(app: AnyElysia, closeActiveConnections?: boolean): Promise<void>;
|
|
24
|
+
stop?(app: AnyElysia, closeActiveConnections?: boolean): Promise<void>;
|
|
25
25
|
isWebStandard?: boolean;
|
|
26
26
|
handler: {
|
|
27
27
|
/**
|
package/dist/adapter/utils.mjs
CHANGED
|
@@ -136,49 +136,39 @@ var serializeCookie = (cookies) => {
|
|
|
136
136
|
var handleFile = (response, set) => {
|
|
137
137
|
if (!isBun && response instanceof Promise)
|
|
138
138
|
return response.then((res) => handleFile(res, set));
|
|
139
|
-
let size = response.size
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (hasHeaderShorthand)
|
|
149
|
-
setHeaders = set.headers.toJSON();
|
|
150
|
-
else {
|
|
151
|
-
setHeaders = {};
|
|
152
|
-
for (let [key, value] of set.headers.entries())
|
|
153
|
-
key in set.headers && (setHeaders[key] = value);
|
|
154
|
-
}
|
|
155
|
-
return new Response(response, {
|
|
156
|
-
status: set.status,
|
|
157
|
-
headers: setHeaders
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
if (isNotEmpty(set.headers))
|
|
161
|
-
return new Response(response, {
|
|
162
|
-
status: set.status,
|
|
163
|
-
headers: Object.assign(
|
|
164
|
-
{
|
|
165
|
-
"accept-ranges": "bytes",
|
|
166
|
-
"content-range": `bytes 0-${size - 1}/${size}`,
|
|
167
|
-
"transfer-encoding": "chunked"
|
|
168
|
-
},
|
|
169
|
-
set.headers
|
|
170
|
-
)
|
|
171
|
-
});
|
|
172
|
-
}
|
|
139
|
+
let size = response.size, immutable = set && (set.status === 206 || set.status === 304 || set.status === 412 || set.status === 416), defaultHeader = immutable ? {
|
|
140
|
+
"transfer-encoding": "chunked"
|
|
141
|
+
} : {
|
|
142
|
+
"accept-ranges": "bytes",
|
|
143
|
+
"content-range": size ? `bytes 0-${size - 1}/${size}` : void 0,
|
|
144
|
+
"transfer-encoding": "chunked"
|
|
145
|
+
};
|
|
146
|
+
if (!set && !size) return new Response(response);
|
|
147
|
+
if (!set)
|
|
173
148
|
return new Response(response, {
|
|
174
|
-
headers:
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
149
|
+
headers: defaultHeader
|
|
150
|
+
});
|
|
151
|
+
if (set.headers instanceof Headers) {
|
|
152
|
+
let setHeaders = defaultHeader;
|
|
153
|
+
if (hasHeaderShorthand)
|
|
154
|
+
setHeaders = set.headers.toJSON();
|
|
155
|
+
else {
|
|
156
|
+
setHeaders = {};
|
|
157
|
+
for (let [key, value] of set.headers.entries())
|
|
158
|
+
key in set.headers && (setHeaders[key] = value);
|
|
159
|
+
}
|
|
160
|
+
return immutable && (delete set.headers["content-length"], delete set.headers["accept-ranges"]), new Response(response, {
|
|
161
|
+
status: set.status,
|
|
162
|
+
headers: setHeaders
|
|
179
163
|
});
|
|
180
164
|
}
|
|
181
|
-
return new Response(response
|
|
165
|
+
return isNotEmpty(set.headers) ? new Response(response, {
|
|
166
|
+
status: set.status,
|
|
167
|
+
headers: Object.assign(defaultHeader, set.headers)
|
|
168
|
+
}) : new Response(response, {
|
|
169
|
+
status: set.status,
|
|
170
|
+
headers: defaultHeader
|
|
171
|
+
});
|
|
182
172
|
}, parseSetCookies = (headers, setCookie) => {
|
|
183
173
|
if (!headers) return headers;
|
|
184
174
|
headers.delete("set-cookie");
|
|
@@ -262,49 +262,39 @@ var serializeCookie = (cookies) => {
|
|
|
262
262
|
var handleFile = (response, set2) => {
|
|
263
263
|
if (!isBun && response instanceof Promise)
|
|
264
264
|
return response.then((res) => handleFile(res, set2));
|
|
265
|
-
let size = response.size
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if (hasHeaderShorthand)
|
|
275
|
-
setHeaders = set2.headers.toJSON();
|
|
276
|
-
else {
|
|
277
|
-
setHeaders = {};
|
|
278
|
-
for (let [key, value] of set2.headers.entries())
|
|
279
|
-
key in set2.headers && (setHeaders[key] = value);
|
|
280
|
-
}
|
|
281
|
-
return new Response(response, {
|
|
282
|
-
status: set2.status,
|
|
283
|
-
headers: setHeaders
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
if (isNotEmpty(set2.headers))
|
|
287
|
-
return new Response(response, {
|
|
288
|
-
status: set2.status,
|
|
289
|
-
headers: Object.assign(
|
|
290
|
-
{
|
|
291
|
-
"accept-ranges": "bytes",
|
|
292
|
-
"content-range": `bytes 0-${size - 1}/${size}`,
|
|
293
|
-
"transfer-encoding": "chunked"
|
|
294
|
-
},
|
|
295
|
-
set2.headers
|
|
296
|
-
)
|
|
297
|
-
});
|
|
298
|
-
}
|
|
265
|
+
let size = response.size, immutable = set2 && (set2.status === 206 || set2.status === 304 || set2.status === 412 || set2.status === 416), defaultHeader = immutable ? {
|
|
266
|
+
"transfer-encoding": "chunked"
|
|
267
|
+
} : {
|
|
268
|
+
"accept-ranges": "bytes",
|
|
269
|
+
"content-range": size ? `bytes 0-${size - 1}/${size}` : void 0,
|
|
270
|
+
"transfer-encoding": "chunked"
|
|
271
|
+
};
|
|
272
|
+
if (!set2 && !size) return new Response(response);
|
|
273
|
+
if (!set2)
|
|
299
274
|
return new Response(response, {
|
|
300
|
-
headers:
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
275
|
+
headers: defaultHeader
|
|
276
|
+
});
|
|
277
|
+
if (set2.headers instanceof Headers) {
|
|
278
|
+
let setHeaders = defaultHeader;
|
|
279
|
+
if (hasHeaderShorthand)
|
|
280
|
+
setHeaders = set2.headers.toJSON();
|
|
281
|
+
else {
|
|
282
|
+
setHeaders = {};
|
|
283
|
+
for (let [key, value] of set2.headers.entries())
|
|
284
|
+
key in set2.headers && (setHeaders[key] = value);
|
|
285
|
+
}
|
|
286
|
+
return immutable && (delete set2.headers["content-length"], delete set2.headers["accept-ranges"]), new Response(response, {
|
|
287
|
+
status: set2.status,
|
|
288
|
+
headers: setHeaders
|
|
305
289
|
});
|
|
306
290
|
}
|
|
307
|
-
return new Response(response
|
|
291
|
+
return isNotEmpty(set2.headers) ? new Response(response, {
|
|
292
|
+
status: set2.status,
|
|
293
|
+
headers: Object.assign(defaultHeader, set2.headers)
|
|
294
|
+
}) : new Response(response, {
|
|
295
|
+
status: set2.status,
|
|
296
|
+
headers: defaultHeader
|
|
297
|
+
});
|
|
308
298
|
}, parseSetCookies = (headers, setCookie) => {
|
|
309
299
|
if (!headers) return headers;
|
|
310
300
|
headers.delete("set-cookie");
|
|
@@ -479,7 +469,15 @@ var handleSet = (set2) => {
|
|
|
479
469
|
};
|
|
480
470
|
|
|
481
471
|
// src/adapter/web-standard/handler.ts
|
|
482
|
-
var
|
|
472
|
+
var handleElysiaFile = (file, set2 = {
|
|
473
|
+
headers: {}
|
|
474
|
+
}) => {
|
|
475
|
+
let path = file.path, contentType = mime[path.slice(path.lastIndexOf(".") + 1)];
|
|
476
|
+
return contentType && (set2.headers["content-type"] = contentType), file.stats && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416 ? file.stats.then((stat) => {
|
|
477
|
+
let size = stat.size;
|
|
478
|
+
return size !== void 0 && (set2.headers["content-range"] = `bytes 0-${size - 1}/${size}`, set2.headers["content-length"] = size), handleFile(file.value, set2);
|
|
479
|
+
}) : handleFile(file.value, set2);
|
|
480
|
+
}, mapResponse = (response, set2, request) => {
|
|
483
481
|
if (isNotEmpty(set2.headers) || set2.status !== 200 || set2.cookie)
|
|
484
482
|
switch (handleSet(set2), response?.constructor?.name) {
|
|
485
483
|
case "String":
|
|
@@ -488,7 +486,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
488
486
|
case "Object":
|
|
489
487
|
return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
|
|
490
488
|
case "ElysiaFile":
|
|
491
|
-
return
|
|
489
|
+
return handleElysiaFile(response, set2);
|
|
492
490
|
case "File":
|
|
493
491
|
return handleFile(response, set2);
|
|
494
492
|
case "Blob":
|
|
@@ -582,7 +580,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
582
580
|
case "Object":
|
|
583
581
|
return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
|
|
584
582
|
case "ElysiaFile":
|
|
585
|
-
return
|
|
583
|
+
return handleElysiaFile(response, set2);
|
|
586
584
|
case "File":
|
|
587
585
|
return handleFile(response, set2);
|
|
588
586
|
case "Blob":
|
|
@@ -666,7 +664,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
666
664
|
case "Object":
|
|
667
665
|
return set2.headers["content-type"] = "application/json", new Response(JSON.stringify(response), set2);
|
|
668
666
|
case "ElysiaFile":
|
|
669
|
-
return
|
|
667
|
+
return handleElysiaFile(response, set2);
|
|
670
668
|
case "File":
|
|
671
669
|
return handleFile(response, set2);
|
|
672
670
|
case "Blob":
|
|
@@ -765,7 +763,7 @@ var mapResponse = (response, set2, request) => {
|
|
|
765
763
|
}
|
|
766
764
|
});
|
|
767
765
|
case "ElysiaFile":
|
|
768
|
-
return
|
|
766
|
+
return handleElysiaFile(response);
|
|
769
767
|
case "File":
|
|
770
768
|
return handleFile(response);
|
|
771
769
|
case "Blob":
|