elysia 1.3.2 → 1.3.4-exp.0
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 +22 -11
- package/dist/adapter/bun/handler-native.mjs +25 -11
- package/dist/adapter/bun/handler.mjs +25 -11
- package/dist/adapter/bun/index.mjs +22 -11
- package/dist/adapter/utils.d.ts +1 -1
- package/dist/adapter/utils.mjs +25 -11
- package/dist/adapter/web-standard/handler.mjs +25 -11
- package/dist/adapter/web-standard/index.mjs +25 -11
- package/dist/bun/index.d.ts +2 -2
- package/dist/bun/index.js +16 -9
- package/dist/bun/index.js.map +7 -7
- package/dist/cjs/adapter/bun/compose.js +22 -11
- package/dist/cjs/adapter/bun/handler-native.js +25 -11
- package/dist/cjs/adapter/bun/handler.js +25 -11
- package/dist/cjs/adapter/bun/index.js +22 -11
- package/dist/cjs/adapter/utils.js +25 -11
- package/dist/cjs/adapter/web-standard/handler.js +25 -11
- package/dist/cjs/adapter/web-standard/index.js +25 -11
- package/dist/cjs/compose.js +14 -9
- package/dist/cjs/cookies.js +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +79 -44
- package/dist/cjs/schema.d.ts +2 -1
- package/dist/cjs/schema.js +6 -4
- package/dist/cjs/types.d.ts +10 -0
- package/dist/cjs/utils.d.ts +4 -1
- package/dist/cjs/utils.js +27 -6
- package/dist/compose.mjs +14 -9
- package/dist/cookies.mjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +78 -44
- package/dist/schema.d.ts +2 -1
- package/dist/schema.mjs +4 -3
- package/dist/types.d.ts +10 -0
- package/dist/utils.d.ts +4 -1
- package/dist/utils.mjs +26 -6
- package/package.json +6 -1
- package/bunfig.toml +0 -2
|
@@ -222,7 +222,7 @@ var redirect = (url, status2 = 302) => Response.redirect(url, status2), ELYSIA_F
|
|
|
222
222
|
};
|
|
223
223
|
var isNotEmpty = (obj) => {
|
|
224
224
|
if (!obj) return !1;
|
|
225
|
-
for (let
|
|
225
|
+
for (let _ in obj) return !0;
|
|
226
226
|
return !1;
|
|
227
227
|
};
|
|
228
228
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -1394,6 +1394,8 @@ var createOnRequestHandler = (app, addFn) => {
|
|
|
1394
1394
|
|
|
1395
1395
|
// src/adapter/utils.ts
|
|
1396
1396
|
var handleFile = (response, set2) => {
|
|
1397
|
+
if (!isBun && response instanceof Promise)
|
|
1398
|
+
return response.then((res) => handleFile(res, set2));
|
|
1397
1399
|
let size = response.size;
|
|
1398
1400
|
if (!set2 && size || size && set2 && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416) {
|
|
1399
1401
|
if (set2) {
|
|
@@ -1477,11 +1479,19 @@ var handleFile = (response, set2) => {
|
|
|
1477
1479
|
return set2;
|
|
1478
1480
|
}, createStreamHandler = ({ mapResponse: mapResponse2, mapCompactResponse: mapCompactResponse2 }) => async (generator, set2, request) => {
|
|
1479
1481
|
let init = generator.next();
|
|
1480
|
-
|
|
1482
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
1483
|
+
return set2 ? mapResponse2(init.value, set2, request) : mapCompactResponse2(init.value, request);
|
|
1484
|
+
let contentType = (
|
|
1485
|
+
// @ts-ignore
|
|
1486
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
1487
|
+
);
|
|
1488
|
+
return set2?.headers ? (set2.headers["transfer-encoding"] || (set2.headers["transfer-encoding"] = "chunked"), set2.headers["content-type"] || (set2.headers["content-type"] = contentType), set2.headers["cache-control"] || (set2.headers["cache-control"] = "no-cache")) : set2 = {
|
|
1481
1489
|
status: 200,
|
|
1482
1490
|
headers: {
|
|
1483
|
-
"content-type":
|
|
1484
|
-
"transfer-encoding": "chunked"
|
|
1491
|
+
"content-type": contentType,
|
|
1492
|
+
"transfer-encoding": "chunked",
|
|
1493
|
+
"cache-control": "no-cache",
|
|
1494
|
+
connection: "keep-alive"
|
|
1485
1495
|
}
|
|
1486
1496
|
}, new Response(
|
|
1487
1497
|
new ReadableStream({
|
|
@@ -1494,7 +1504,9 @@ var handleFile = (response, set2) => {
|
|
|
1494
1504
|
} catch {
|
|
1495
1505
|
}
|
|
1496
1506
|
}), init.value !== void 0 && init.value !== null)
|
|
1497
|
-
if (
|
|
1507
|
+
if (init.value.toStream)
|
|
1508
|
+
controller.enqueue(init.value.toStream());
|
|
1509
|
+
else if (typeof init.value == "object")
|
|
1498
1510
|
try {
|
|
1499
1511
|
controller.enqueue(
|
|
1500
1512
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -1511,7 +1523,9 @@ var handleFile = (response, set2) => {
|
|
|
1511
1523
|
for await (let chunk of generator) {
|
|
1512
1524
|
if (end) break;
|
|
1513
1525
|
if (chunk != null) {
|
|
1514
|
-
if (
|
|
1526
|
+
if (chunk.toStream)
|
|
1527
|
+
controller.enqueue(chunk.toStream());
|
|
1528
|
+
else if (typeof chunk == "object")
|
|
1515
1529
|
try {
|
|
1516
1530
|
controller.enqueue(
|
|
1517
1531
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -1521,10 +1535,7 @@ var handleFile = (response, set2) => {
|
|
|
1521
1535
|
Buffer.from(chunk.toString())
|
|
1522
1536
|
);
|
|
1523
1537
|
}
|
|
1524
|
-
else
|
|
1525
|
-
controller.enqueue(
|
|
1526
|
-
Buffer.from(chunk.toString())
|
|
1527
|
-
);
|
|
1538
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
1528
1539
|
await new Promise(
|
|
1529
1540
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
1530
1541
|
);
|
|
@@ -1537,7 +1548,7 @@ var handleFile = (response, set2) => {
|
|
|
1537
1548
|
}
|
|
1538
1549
|
}),
|
|
1539
1550
|
set2
|
|
1540
|
-
)
|
|
1551
|
+
);
|
|
1541
1552
|
};
|
|
1542
1553
|
async function* streamResponse(response) {
|
|
1543
1554
|
let body = response.body;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import { parse, serialize } from "cookie";
|
|
3
3
|
import decode from "fast-decode-uri-component";
|
|
4
4
|
|
|
5
|
+
// src/universal/utils.ts
|
|
6
|
+
var isBun = typeof Bun < "u";
|
|
7
|
+
|
|
5
8
|
// src/utils.ts
|
|
6
9
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
7
10
|
var primitiveHooks = [
|
|
@@ -97,7 +100,7 @@ var encoder = new TextEncoder();
|
|
|
97
100
|
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData"), ELYSIA_REQUEST_ID = Symbol("ElysiaRequestId");
|
|
98
101
|
var isNotEmpty = (obj) => {
|
|
99
102
|
if (!obj) return !1;
|
|
100
|
-
for (let
|
|
103
|
+
for (let _ in obj) return !0;
|
|
101
104
|
return !1;
|
|
102
105
|
};
|
|
103
106
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -250,6 +253,8 @@ var serializeCookie = (cookies) => {
|
|
|
250
253
|
|
|
251
254
|
// src/adapter/utils.ts
|
|
252
255
|
var handleFile = (response, set2) => {
|
|
256
|
+
if (!isBun && response instanceof Promise)
|
|
257
|
+
return response.then((res) => handleFile(res, set2));
|
|
253
258
|
let size = response.size;
|
|
254
259
|
if (!set2 && size || size && set2 && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416) {
|
|
255
260
|
if (set2) {
|
|
@@ -333,11 +338,19 @@ var handleFile = (response, set2) => {
|
|
|
333
338
|
return set2;
|
|
334
339
|
}, createStreamHandler = ({ mapResponse: mapResponse2, mapCompactResponse: mapCompactResponse2 }) => async (generator, set2, request) => {
|
|
335
340
|
let init = generator.next();
|
|
336
|
-
|
|
341
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
342
|
+
return set2 ? mapResponse2(init.value, set2, request) : mapCompactResponse2(init.value, request);
|
|
343
|
+
let contentType = (
|
|
344
|
+
// @ts-ignore
|
|
345
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
346
|
+
);
|
|
347
|
+
return set2?.headers ? (set2.headers["transfer-encoding"] || (set2.headers["transfer-encoding"] = "chunked"), set2.headers["content-type"] || (set2.headers["content-type"] = contentType), set2.headers["cache-control"] || (set2.headers["cache-control"] = "no-cache")) : set2 = {
|
|
337
348
|
status: 200,
|
|
338
349
|
headers: {
|
|
339
|
-
"content-type":
|
|
340
|
-
"transfer-encoding": "chunked"
|
|
350
|
+
"content-type": contentType,
|
|
351
|
+
"transfer-encoding": "chunked",
|
|
352
|
+
"cache-control": "no-cache",
|
|
353
|
+
connection: "keep-alive"
|
|
341
354
|
}
|
|
342
355
|
}, new Response(
|
|
343
356
|
new ReadableStream({
|
|
@@ -350,7 +363,9 @@ var handleFile = (response, set2) => {
|
|
|
350
363
|
} catch {
|
|
351
364
|
}
|
|
352
365
|
}), init.value !== void 0 && init.value !== null)
|
|
353
|
-
if (
|
|
366
|
+
if (init.value.toStream)
|
|
367
|
+
controller.enqueue(init.value.toStream());
|
|
368
|
+
else if (typeof init.value == "object")
|
|
354
369
|
try {
|
|
355
370
|
controller.enqueue(
|
|
356
371
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -367,7 +382,9 @@ var handleFile = (response, set2) => {
|
|
|
367
382
|
for await (let chunk of generator) {
|
|
368
383
|
if (end) break;
|
|
369
384
|
if (chunk != null) {
|
|
370
|
-
if (
|
|
385
|
+
if (chunk.toStream)
|
|
386
|
+
controller.enqueue(chunk.toStream());
|
|
387
|
+
else if (typeof chunk == "object")
|
|
371
388
|
try {
|
|
372
389
|
controller.enqueue(
|
|
373
390
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -377,10 +394,7 @@ var handleFile = (response, set2) => {
|
|
|
377
394
|
Buffer.from(chunk.toString())
|
|
378
395
|
);
|
|
379
396
|
}
|
|
380
|
-
else
|
|
381
|
-
controller.enqueue(
|
|
382
|
-
Buffer.from(chunk.toString())
|
|
383
|
-
);
|
|
397
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
384
398
|
await new Promise(
|
|
385
399
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
386
400
|
);
|
|
@@ -393,7 +407,7 @@ var handleFile = (response, set2) => {
|
|
|
393
407
|
}
|
|
394
408
|
}),
|
|
395
409
|
set2
|
|
396
|
-
)
|
|
410
|
+
);
|
|
397
411
|
};
|
|
398
412
|
async function* streamResponse(response) {
|
|
399
413
|
let body = response.body;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import { parse, serialize } from "cookie";
|
|
3
3
|
import decode from "fast-decode-uri-component";
|
|
4
4
|
|
|
5
|
+
// src/universal/utils.ts
|
|
6
|
+
var isBun = typeof Bun < "u";
|
|
7
|
+
|
|
5
8
|
// src/utils.ts
|
|
6
9
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
7
10
|
var primitiveHooks = [
|
|
@@ -97,7 +100,7 @@ var encoder = new TextEncoder();
|
|
|
97
100
|
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData"), ELYSIA_REQUEST_ID = Symbol("ElysiaRequestId");
|
|
98
101
|
var isNotEmpty = (obj) => {
|
|
99
102
|
if (!obj) return !1;
|
|
100
|
-
for (let
|
|
103
|
+
for (let _ in obj) return !0;
|
|
101
104
|
return !1;
|
|
102
105
|
};
|
|
103
106
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -250,6 +253,8 @@ var serializeCookie = (cookies) => {
|
|
|
250
253
|
|
|
251
254
|
// src/adapter/utils.ts
|
|
252
255
|
var handleFile = (response, set2) => {
|
|
256
|
+
if (!isBun && response instanceof Promise)
|
|
257
|
+
return response.then((res) => handleFile(res, set2));
|
|
253
258
|
let size = response.size;
|
|
254
259
|
if (!set2 && size || size && set2 && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416) {
|
|
255
260
|
if (set2) {
|
|
@@ -333,11 +338,19 @@ var handleFile = (response, set2) => {
|
|
|
333
338
|
return set2;
|
|
334
339
|
}, createStreamHandler = ({ mapResponse: mapResponse2, mapCompactResponse: mapCompactResponse2 }) => async (generator, set2, request) => {
|
|
335
340
|
let init = generator.next();
|
|
336
|
-
|
|
341
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
342
|
+
return set2 ? mapResponse2(init.value, set2, request) : mapCompactResponse2(init.value, request);
|
|
343
|
+
let contentType = (
|
|
344
|
+
// @ts-ignore
|
|
345
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
346
|
+
);
|
|
347
|
+
return set2?.headers ? (set2.headers["transfer-encoding"] || (set2.headers["transfer-encoding"] = "chunked"), set2.headers["content-type"] || (set2.headers["content-type"] = contentType), set2.headers["cache-control"] || (set2.headers["cache-control"] = "no-cache")) : set2 = {
|
|
337
348
|
status: 200,
|
|
338
349
|
headers: {
|
|
339
|
-
"content-type":
|
|
340
|
-
"transfer-encoding": "chunked"
|
|
350
|
+
"content-type": contentType,
|
|
351
|
+
"transfer-encoding": "chunked",
|
|
352
|
+
"cache-control": "no-cache",
|
|
353
|
+
connection: "keep-alive"
|
|
341
354
|
}
|
|
342
355
|
}, new Response(
|
|
343
356
|
new ReadableStream({
|
|
@@ -350,7 +363,9 @@ var handleFile = (response, set2) => {
|
|
|
350
363
|
} catch {
|
|
351
364
|
}
|
|
352
365
|
}), init.value !== void 0 && init.value !== null)
|
|
353
|
-
if (
|
|
366
|
+
if (init.value.toStream)
|
|
367
|
+
controller.enqueue(init.value.toStream());
|
|
368
|
+
else if (typeof init.value == "object")
|
|
354
369
|
try {
|
|
355
370
|
controller.enqueue(
|
|
356
371
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -367,7 +382,9 @@ var handleFile = (response, set2) => {
|
|
|
367
382
|
for await (let chunk of generator) {
|
|
368
383
|
if (end) break;
|
|
369
384
|
if (chunk != null) {
|
|
370
|
-
if (
|
|
385
|
+
if (chunk.toStream)
|
|
386
|
+
controller.enqueue(chunk.toStream());
|
|
387
|
+
else if (typeof chunk == "object")
|
|
371
388
|
try {
|
|
372
389
|
controller.enqueue(
|
|
373
390
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -377,10 +394,7 @@ var handleFile = (response, set2) => {
|
|
|
377
394
|
Buffer.from(chunk.toString())
|
|
378
395
|
);
|
|
379
396
|
}
|
|
380
|
-
else
|
|
381
|
-
controller.enqueue(
|
|
382
|
-
Buffer.from(chunk.toString())
|
|
383
|
-
);
|
|
397
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
384
398
|
await new Promise(
|
|
385
399
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
386
400
|
);
|
|
@@ -393,7 +407,7 @@ var handleFile = (response, set2) => {
|
|
|
393
407
|
}
|
|
394
408
|
}),
|
|
395
409
|
set2
|
|
396
|
-
)
|
|
410
|
+
);
|
|
397
411
|
};
|
|
398
412
|
async function* streamResponse(response) {
|
|
399
413
|
let body = response.body;
|
|
@@ -240,7 +240,7 @@ var redirect = (url, status2 = 302) => Response.redirect(url, status2), ELYSIA_F
|
|
|
240
240
|
};
|
|
241
241
|
var isNotEmpty = (obj) => {
|
|
242
242
|
if (!obj) return !1;
|
|
243
|
-
for (let
|
|
243
|
+
for (let _ in obj) return !0;
|
|
244
244
|
return !1;
|
|
245
245
|
};
|
|
246
246
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -519,6 +519,8 @@ var serializeCookie = (cookies) => {
|
|
|
519
519
|
|
|
520
520
|
// src/adapter/utils.ts
|
|
521
521
|
var handleFile = (response, set2) => {
|
|
522
|
+
if (!isBun && response instanceof Promise)
|
|
523
|
+
return response.then((res) => handleFile(res, set2));
|
|
522
524
|
let size = response.size;
|
|
523
525
|
if (!set2 && size || size && set2 && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416) {
|
|
524
526
|
if (set2) {
|
|
@@ -602,11 +604,19 @@ var handleFile = (response, set2) => {
|
|
|
602
604
|
return set2;
|
|
603
605
|
}, createStreamHandler = ({ mapResponse: mapResponse3, mapCompactResponse: mapCompactResponse3 }) => async (generator, set2, request) => {
|
|
604
606
|
let init = generator.next();
|
|
605
|
-
|
|
607
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
608
|
+
return set2 ? mapResponse3(init.value, set2, request) : mapCompactResponse3(init.value, request);
|
|
609
|
+
let contentType = (
|
|
610
|
+
// @ts-ignore
|
|
611
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
612
|
+
);
|
|
613
|
+
return set2?.headers ? (set2.headers["transfer-encoding"] || (set2.headers["transfer-encoding"] = "chunked"), set2.headers["content-type"] || (set2.headers["content-type"] = contentType), set2.headers["cache-control"] || (set2.headers["cache-control"] = "no-cache")) : set2 = {
|
|
606
614
|
status: 200,
|
|
607
615
|
headers: {
|
|
608
|
-
"content-type":
|
|
609
|
-
"transfer-encoding": "chunked"
|
|
616
|
+
"content-type": contentType,
|
|
617
|
+
"transfer-encoding": "chunked",
|
|
618
|
+
"cache-control": "no-cache",
|
|
619
|
+
connection: "keep-alive"
|
|
610
620
|
}
|
|
611
621
|
}, new Response(
|
|
612
622
|
new ReadableStream({
|
|
@@ -619,7 +629,9 @@ var handleFile = (response, set2) => {
|
|
|
619
629
|
} catch {
|
|
620
630
|
}
|
|
621
631
|
}), init.value !== void 0 && init.value !== null)
|
|
622
|
-
if (
|
|
632
|
+
if (init.value.toStream)
|
|
633
|
+
controller.enqueue(init.value.toStream());
|
|
634
|
+
else if (typeof init.value == "object")
|
|
623
635
|
try {
|
|
624
636
|
controller.enqueue(
|
|
625
637
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -636,7 +648,9 @@ var handleFile = (response, set2) => {
|
|
|
636
648
|
for await (let chunk of generator) {
|
|
637
649
|
if (end) break;
|
|
638
650
|
if (chunk != null) {
|
|
639
|
-
if (
|
|
651
|
+
if (chunk.toStream)
|
|
652
|
+
controller.enqueue(chunk.toStream());
|
|
653
|
+
else if (typeof chunk == "object")
|
|
640
654
|
try {
|
|
641
655
|
controller.enqueue(
|
|
642
656
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -646,10 +660,7 @@ var handleFile = (response, set2) => {
|
|
|
646
660
|
Buffer.from(chunk.toString())
|
|
647
661
|
);
|
|
648
662
|
}
|
|
649
|
-
else
|
|
650
|
-
controller.enqueue(
|
|
651
|
-
Buffer.from(chunk.toString())
|
|
652
|
-
);
|
|
663
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
653
664
|
await new Promise(
|
|
654
665
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
655
666
|
);
|
|
@@ -662,7 +673,7 @@ var handleFile = (response, set2) => {
|
|
|
662
673
|
}
|
|
663
674
|
}),
|
|
664
675
|
set2
|
|
665
|
-
)
|
|
676
|
+
);
|
|
666
677
|
};
|
|
667
678
|
async function* streamResponse(response) {
|
|
668
679
|
let body = response.body;
|
package/dist/adapter/utils.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { Context } from '../context';
|
|
|
3
3
|
export declare const handleFile: (response: File | Blob, set?: Context["set"]) => Response;
|
|
4
4
|
export declare const parseSetCookies: (headers: Headers, setCookie: string[]) => Headers;
|
|
5
5
|
export declare const responseToSetHeaders: (response: Response, set?: Context["set"]) => {
|
|
6
|
-
headers: import("
|
|
6
|
+
headers: import("..").HTTPHeaders;
|
|
7
7
|
status?: number | keyof StatusMap;
|
|
8
8
|
redirect?: string;
|
|
9
9
|
cookie?: Record<string, import("../cookies").ElysiaCookie>;
|
package/dist/adapter/utils.mjs
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import { parse, serialize } from "cookie";
|
|
3
3
|
import decode from "fast-decode-uri-component";
|
|
4
4
|
|
|
5
|
+
// src/universal/utils.ts
|
|
6
|
+
var isBun = typeof Bun < "u";
|
|
7
|
+
|
|
5
8
|
// src/utils.ts
|
|
6
9
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
7
10
|
var primitiveHooks = [
|
|
@@ -97,7 +100,7 @@ var encoder = new TextEncoder();
|
|
|
97
100
|
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData"), ELYSIA_REQUEST_ID = Symbol("ElysiaRequestId");
|
|
98
101
|
var isNotEmpty = (obj) => {
|
|
99
102
|
if (!obj) return !1;
|
|
100
|
-
for (let
|
|
103
|
+
for (let _ in obj) return !0;
|
|
101
104
|
return !1;
|
|
102
105
|
};
|
|
103
106
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -131,6 +134,8 @@ var serializeCookie = (cookies) => {
|
|
|
131
134
|
|
|
132
135
|
// src/adapter/utils.ts
|
|
133
136
|
var handleFile = (response, set) => {
|
|
137
|
+
if (!isBun && response instanceof Promise)
|
|
138
|
+
return response.then((res) => handleFile(res, set));
|
|
134
139
|
let size = response.size;
|
|
135
140
|
if (!set && size || size && set && set.status !== 206 && set.status !== 304 && set.status !== 412 && set.status !== 416) {
|
|
136
141
|
if (set) {
|
|
@@ -214,11 +219,19 @@ var handleFile = (response, set) => {
|
|
|
214
219
|
return set;
|
|
215
220
|
}, createStreamHandler = ({ mapResponse, mapCompactResponse }) => async (generator, set, request) => {
|
|
216
221
|
let init = generator.next();
|
|
217
|
-
|
|
222
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
223
|
+
return set ? mapResponse(init.value, set, request) : mapCompactResponse(init.value, request);
|
|
224
|
+
let contentType = (
|
|
225
|
+
// @ts-ignore
|
|
226
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
227
|
+
);
|
|
228
|
+
return set?.headers ? (set.headers["transfer-encoding"] || (set.headers["transfer-encoding"] = "chunked"), set.headers["content-type"] || (set.headers["content-type"] = contentType), set.headers["cache-control"] || (set.headers["cache-control"] = "no-cache")) : set = {
|
|
218
229
|
status: 200,
|
|
219
230
|
headers: {
|
|
220
|
-
"content-type":
|
|
221
|
-
"transfer-encoding": "chunked"
|
|
231
|
+
"content-type": contentType,
|
|
232
|
+
"transfer-encoding": "chunked",
|
|
233
|
+
"cache-control": "no-cache",
|
|
234
|
+
connection: "keep-alive"
|
|
222
235
|
}
|
|
223
236
|
}, new Response(
|
|
224
237
|
new ReadableStream({
|
|
@@ -231,7 +244,9 @@ var handleFile = (response, set) => {
|
|
|
231
244
|
} catch {
|
|
232
245
|
}
|
|
233
246
|
}), init.value !== void 0 && init.value !== null)
|
|
234
|
-
if (
|
|
247
|
+
if (init.value.toStream)
|
|
248
|
+
controller.enqueue(init.value.toStream());
|
|
249
|
+
else if (typeof init.value == "object")
|
|
235
250
|
try {
|
|
236
251
|
controller.enqueue(
|
|
237
252
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -248,7 +263,9 @@ var handleFile = (response, set) => {
|
|
|
248
263
|
for await (let chunk of generator) {
|
|
249
264
|
if (end) break;
|
|
250
265
|
if (chunk != null) {
|
|
251
|
-
if (
|
|
266
|
+
if (chunk.toStream)
|
|
267
|
+
controller.enqueue(chunk.toStream());
|
|
268
|
+
else if (typeof chunk == "object")
|
|
252
269
|
try {
|
|
253
270
|
controller.enqueue(
|
|
254
271
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -258,10 +275,7 @@ var handleFile = (response, set) => {
|
|
|
258
275
|
Buffer.from(chunk.toString())
|
|
259
276
|
);
|
|
260
277
|
}
|
|
261
|
-
else
|
|
262
|
-
controller.enqueue(
|
|
263
|
-
Buffer.from(chunk.toString())
|
|
264
|
-
);
|
|
278
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
265
279
|
await new Promise(
|
|
266
280
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
267
281
|
);
|
|
@@ -274,7 +288,7 @@ var handleFile = (response, set) => {
|
|
|
274
288
|
}
|
|
275
289
|
}),
|
|
276
290
|
set
|
|
277
|
-
)
|
|
291
|
+
);
|
|
278
292
|
};
|
|
279
293
|
async function* streamResponse(response) {
|
|
280
294
|
let body = response.body;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import { parse, serialize } from "cookie";
|
|
3
3
|
import decode from "fast-decode-uri-component";
|
|
4
4
|
|
|
5
|
+
// src/universal/utils.ts
|
|
6
|
+
var isBun = typeof Bun < "u";
|
|
7
|
+
|
|
5
8
|
// src/utils.ts
|
|
6
9
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
7
10
|
var primitiveHooks = [
|
|
@@ -97,7 +100,7 @@ var encoder = new TextEncoder();
|
|
|
97
100
|
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData"), ELYSIA_REQUEST_ID = Symbol("ElysiaRequestId");
|
|
98
101
|
var isNotEmpty = (obj) => {
|
|
99
102
|
if (!obj) return !1;
|
|
100
|
-
for (let
|
|
103
|
+
for (let _ in obj) return !0;
|
|
101
104
|
return !1;
|
|
102
105
|
};
|
|
103
106
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -250,6 +253,8 @@ var serializeCookie = (cookies) => {
|
|
|
250
253
|
|
|
251
254
|
// src/adapter/utils.ts
|
|
252
255
|
var handleFile = (response, set2) => {
|
|
256
|
+
if (!isBun && response instanceof Promise)
|
|
257
|
+
return response.then((res) => handleFile(res, set2));
|
|
253
258
|
let size = response.size;
|
|
254
259
|
if (!set2 && size || size && set2 && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416) {
|
|
255
260
|
if (set2) {
|
|
@@ -333,11 +338,19 @@ var handleFile = (response, set2) => {
|
|
|
333
338
|
return set2;
|
|
334
339
|
}, createStreamHandler = ({ mapResponse: mapResponse2, mapCompactResponse: mapCompactResponse2 }) => async (generator, set2, request) => {
|
|
335
340
|
let init = generator.next();
|
|
336
|
-
|
|
341
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
342
|
+
return set2 ? mapResponse2(init.value, set2, request) : mapCompactResponse2(init.value, request);
|
|
343
|
+
let contentType = (
|
|
344
|
+
// @ts-ignore
|
|
345
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
346
|
+
);
|
|
347
|
+
return set2?.headers ? (set2.headers["transfer-encoding"] || (set2.headers["transfer-encoding"] = "chunked"), set2.headers["content-type"] || (set2.headers["content-type"] = contentType), set2.headers["cache-control"] || (set2.headers["cache-control"] = "no-cache")) : set2 = {
|
|
337
348
|
status: 200,
|
|
338
349
|
headers: {
|
|
339
|
-
"content-type":
|
|
340
|
-
"transfer-encoding": "chunked"
|
|
350
|
+
"content-type": contentType,
|
|
351
|
+
"transfer-encoding": "chunked",
|
|
352
|
+
"cache-control": "no-cache",
|
|
353
|
+
connection: "keep-alive"
|
|
341
354
|
}
|
|
342
355
|
}, new Response(
|
|
343
356
|
new ReadableStream({
|
|
@@ -350,7 +363,9 @@ var handleFile = (response, set2) => {
|
|
|
350
363
|
} catch {
|
|
351
364
|
}
|
|
352
365
|
}), init.value !== void 0 && init.value !== null)
|
|
353
|
-
if (
|
|
366
|
+
if (init.value.toStream)
|
|
367
|
+
controller.enqueue(init.value.toStream());
|
|
368
|
+
else if (typeof init.value == "object")
|
|
354
369
|
try {
|
|
355
370
|
controller.enqueue(
|
|
356
371
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -367,7 +382,9 @@ var handleFile = (response, set2) => {
|
|
|
367
382
|
for await (let chunk of generator) {
|
|
368
383
|
if (end) break;
|
|
369
384
|
if (chunk != null) {
|
|
370
|
-
if (
|
|
385
|
+
if (chunk.toStream)
|
|
386
|
+
controller.enqueue(chunk.toStream());
|
|
387
|
+
else if (typeof chunk == "object")
|
|
371
388
|
try {
|
|
372
389
|
controller.enqueue(
|
|
373
390
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -377,10 +394,7 @@ var handleFile = (response, set2) => {
|
|
|
377
394
|
Buffer.from(chunk.toString())
|
|
378
395
|
);
|
|
379
396
|
}
|
|
380
|
-
else
|
|
381
|
-
controller.enqueue(
|
|
382
|
-
Buffer.from(chunk.toString())
|
|
383
|
-
);
|
|
397
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
384
398
|
await new Promise(
|
|
385
399
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
386
400
|
);
|
|
@@ -393,7 +407,7 @@ var handleFile = (response, set2) => {
|
|
|
393
407
|
}
|
|
394
408
|
}),
|
|
395
409
|
set2
|
|
396
|
-
)
|
|
410
|
+
);
|
|
397
411
|
};
|
|
398
412
|
async function* streamResponse(response) {
|
|
399
413
|
let body = response.body;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import { parse, serialize } from "cookie";
|
|
3
3
|
import decode from "fast-decode-uri-component";
|
|
4
4
|
|
|
5
|
+
// src/universal/utils.ts
|
|
6
|
+
var isBun = typeof Bun < "u";
|
|
7
|
+
|
|
5
8
|
// src/utils.ts
|
|
6
9
|
var hasHeaderShorthand = "toJSON" in new Headers();
|
|
7
10
|
var primitiveHooks = [
|
|
@@ -97,7 +100,7 @@ var encoder = new TextEncoder();
|
|
|
97
100
|
var ELYSIA_FORM_DATA = Symbol("ElysiaFormData"), ELYSIA_REQUEST_ID = Symbol("ElysiaRequestId");
|
|
98
101
|
var isNotEmpty = (obj) => {
|
|
99
102
|
if (!obj) return !1;
|
|
100
|
-
for (let
|
|
103
|
+
for (let _ in obj) return !0;
|
|
101
104
|
return !1;
|
|
102
105
|
};
|
|
103
106
|
var supportPerMethodInlineHandler = (() => {
|
|
@@ -250,6 +253,8 @@ var serializeCookie = (cookies) => {
|
|
|
250
253
|
|
|
251
254
|
// src/adapter/utils.ts
|
|
252
255
|
var handleFile = (response, set2) => {
|
|
256
|
+
if (!isBun && response instanceof Promise)
|
|
257
|
+
return response.then((res) => handleFile(res, set2));
|
|
253
258
|
let size = response.size;
|
|
254
259
|
if (!set2 && size || size && set2 && set2.status !== 206 && set2.status !== 304 && set2.status !== 412 && set2.status !== 416) {
|
|
255
260
|
if (set2) {
|
|
@@ -333,11 +338,19 @@ var handleFile = (response, set2) => {
|
|
|
333
338
|
return set2;
|
|
334
339
|
}, createStreamHandler = ({ mapResponse: mapResponse2, mapCompactResponse: mapCompactResponse2 }) => async (generator, set2, request) => {
|
|
335
340
|
let init = generator.next();
|
|
336
|
-
|
|
341
|
+
if (init instanceof Promise && (init = await init), typeof init?.done > "u" || init?.done)
|
|
342
|
+
return set2 ? mapResponse2(init.value, set2, request) : mapCompactResponse2(init.value, request);
|
|
343
|
+
let contentType = (
|
|
344
|
+
// @ts-ignore
|
|
345
|
+
init.value && typeof init.value?.stream ? "text/event-stream" : init.value && typeof init.value == "object" ? "application/json" : "text/plain"
|
|
346
|
+
);
|
|
347
|
+
return set2?.headers ? (set2.headers["transfer-encoding"] || (set2.headers["transfer-encoding"] = "chunked"), set2.headers["content-type"] || (set2.headers["content-type"] = contentType), set2.headers["cache-control"] || (set2.headers["cache-control"] = "no-cache")) : set2 = {
|
|
337
348
|
status: 200,
|
|
338
349
|
headers: {
|
|
339
|
-
"content-type":
|
|
340
|
-
"transfer-encoding": "chunked"
|
|
350
|
+
"content-type": contentType,
|
|
351
|
+
"transfer-encoding": "chunked",
|
|
352
|
+
"cache-control": "no-cache",
|
|
353
|
+
connection: "keep-alive"
|
|
341
354
|
}
|
|
342
355
|
}, new Response(
|
|
343
356
|
new ReadableStream({
|
|
@@ -350,7 +363,9 @@ var handleFile = (response, set2) => {
|
|
|
350
363
|
} catch {
|
|
351
364
|
}
|
|
352
365
|
}), init.value !== void 0 && init.value !== null)
|
|
353
|
-
if (
|
|
366
|
+
if (init.value.toStream)
|
|
367
|
+
controller.enqueue(init.value.toStream());
|
|
368
|
+
else if (typeof init.value == "object")
|
|
354
369
|
try {
|
|
355
370
|
controller.enqueue(
|
|
356
371
|
Buffer.from(JSON.stringify(init.value))
|
|
@@ -367,7 +382,9 @@ var handleFile = (response, set2) => {
|
|
|
367
382
|
for await (let chunk of generator) {
|
|
368
383
|
if (end) break;
|
|
369
384
|
if (chunk != null) {
|
|
370
|
-
if (
|
|
385
|
+
if (chunk.toStream)
|
|
386
|
+
controller.enqueue(chunk.toStream());
|
|
387
|
+
else if (typeof chunk == "object")
|
|
371
388
|
try {
|
|
372
389
|
controller.enqueue(
|
|
373
390
|
Buffer.from(JSON.stringify(chunk))
|
|
@@ -377,10 +394,7 @@ var handleFile = (response, set2) => {
|
|
|
377
394
|
Buffer.from(chunk.toString())
|
|
378
395
|
);
|
|
379
396
|
}
|
|
380
|
-
else
|
|
381
|
-
controller.enqueue(
|
|
382
|
-
Buffer.from(chunk.toString())
|
|
383
|
-
);
|
|
397
|
+
else controller.enqueue(Buffer.from(chunk.toString()));
|
|
384
398
|
await new Promise(
|
|
385
399
|
(resolve) => setTimeout(() => resolve(), 0)
|
|
386
400
|
);
|
|
@@ -393,7 +407,7 @@ var handleFile = (response, set2) => {
|
|
|
393
407
|
}
|
|
394
408
|
}),
|
|
395
409
|
set2
|
|
396
|
-
)
|
|
410
|
+
);
|
|
397
411
|
};
|
|
398
412
|
async function* streamResponse(response) {
|
|
399
413
|
let body = response.body;
|
package/dist/bun/index.d.ts
CHANGED
|
@@ -1814,9 +1814,9 @@ export { serializeCookie, Cookie, type CookieOptions } from './cookies';
|
|
|
1814
1814
|
export type { Context, PreContext, ErrorContext } from './context';
|
|
1815
1815
|
export { ELYSIA_TRACE, type TraceEvent, type TraceListener, type TraceHandler, type TraceProcess, type TraceStream } from './trace';
|
|
1816
1816
|
export { getSchemaValidator, getResponseSchemaValidator, replaceSchemaType } from './schema';
|
|
1817
|
-
export { mergeHook, mergeObjectArray, redirect, StatusMap, InvertedStatusMap, form, replaceUrlPath, checksum, cloneInference, deduplicateChecksum, ELYSIA_FORM_DATA, ELYSIA_REQUEST_ID } from './utils';
|
|
1817
|
+
export { mergeHook, mergeObjectArray, redirect, StatusMap, InvertedStatusMap, form, replaceUrlPath, checksum, cloneInference, deduplicateChecksum, ELYSIA_FORM_DATA, ELYSIA_REQUEST_ID, sse } from './utils';
|
|
1818
1818
|
export { status, error, mapValueError, ParseError, NotFoundError, ValidationError, InternalServerError, InvalidCookieSignature, ERROR_CODE } from './error';
|
|
1819
|
-
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, AfterResponseHandler, ErrorHandler, LifeCycleEvent, LifeCycleStore, LifeCycleType, MaybePromise, UnwrapSchema, Checksum, DocumentDecoration, InferContext, InferHandler, ResolvePath, MapResponse, MacroQueue, BaseMacro, MacroManager, BaseMacroFn, MacroToProperty, ResolveMacroContext, MergeElysiaInstances, MaybeArray, ModelValidator, MetadataBase, UnwrapBodySchema, UnwrapGroupGuardRoute, ModelValidatorError, ExcludeElysiaResponse,
|
|
1819
|
+
export type { EphemeralType, CreateEden, ComposeElysiaResponse, ElysiaConfig, SingletonBase, DefinitionBase, RouteBase, Handler, ComposedHandler, InputSchema, LocalHook, MergeSchema, RouteSchema, UnwrapRoute, InternalRoute, HTTPMethod, SchemaValidator, VoidHandler, PreHandler, BodyHandler, OptionalHandler, AfterResponseHandler, ErrorHandler, LifeCycleEvent, LifeCycleStore, LifeCycleType, MaybePromise, UnwrapSchema, Checksum, DocumentDecoration, InferContext, InferHandler, ResolvePath, MapResponse, MacroQueue, BaseMacro, MacroManager, BaseMacroFn, MacroToProperty, ResolveMacroContext, MergeElysiaInstances, MaybeArray, ModelValidator, MetadataBase, UnwrapBodySchema, UnwrapGroupGuardRoute, ModelValidatorError, ExcludeElysiaResponse, SSEPayload, StandaloneInputSchema, MergeStandaloneSchema, MergeTypeModule, GracefulHandler, AfterHandler, InlineHandler, ResolveHandler, TransformHandler, HTTPHeaders } from './types';
|
|
1820
1820
|
export { env } from './universal/env';
|
|
1821
1821
|
export { file, ElysiaFile } from './universal/file';
|
|
1822
1822
|
export type { ElysiaAdapter } from './adapter';
|