@trpc/server 10.28.2 → 10.29.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/adapters/aws-lambda/index.js +1 -1
- package/dist/adapters/aws-lambda/index.mjs +1 -1
- package/dist/adapters/express.js +5 -4
- package/dist/adapters/express.mjs +5 -4
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +50 -15
- package/dist/adapters/fastify/index.mjs +50 -15
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +66 -20
- package/dist/adapters/fetch/index.mjs +66 -20
- package/dist/adapters/next.js +3 -2
- package/dist/adapters/next.mjs +3 -2
- package/dist/adapters/node-http/content-type/form-data/index.js +19 -46
- package/dist/adapters/node-http/content-type/form-data/index.mjs +19 -40
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +7 -3
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +1 -1
- package/dist/adapters/node-http/index.js +5 -4
- package/dist/adapters/node-http/index.mjs +5 -4
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -4
- package/dist/adapters/standalone.mjs +5 -4
- package/dist/batchStreamFormatter-2c1405a1.js +31 -0
- package/dist/batchStreamFormatter-93cdcdd4.js +32 -0
- package/dist/batchStreamFormatter-fc1ffb26.mjs +30 -0
- package/dist/http/batchStreamFormatter.d.ts +24 -0
- package/dist/http/batchStreamFormatter.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +3 -1
- package/dist/http/index.mjs +2 -1
- package/dist/http/internals/types.d.ts +7 -0
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +36 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-bd47641d.js → nodeHTTPRequestHandler-53b9fc2d.js} +44 -12
- package/dist/{nodeHTTPRequestHandler-0f979796.mjs → nodeHTTPRequestHandler-bdad2781.mjs} +42 -13
- package/dist/{nodeHTTPRequestHandler-5bbf93f1.js → nodeHTTPRequestHandler-e637755a.js} +42 -13
- package/dist/resolveHTTPResponse-2bdf2cd7.js +256 -0
- package/dist/resolveHTTPResponse-2c307e04.js +284 -0
- package/dist/resolveHTTPResponse-a9be3d96.mjs +282 -0
- package/package.json +4 -4
- package/src/adapters/fastify/fastifyRequestHandler.ts +64 -17
- package/src/adapters/fetch/fetchRequestHandler.ts +72 -25
- package/src/adapters/node-http/content-type/form-data/streamSlice.ts +19 -21
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +51 -12
- package/src/http/batchStreamFormatter.ts +29 -0
- package/src/http/index.ts +1 -0
- package/src/http/internals/types.ts +8 -0
- package/src/http/resolveHTTPResponse.ts +335 -124
- package/dist/resolveHTTPResponse-4e576698.mjs +0 -174
- package/dist/resolveHTTPResponse-9523b4e3.js +0 -176
- package/dist/resolveHTTPResponse-ba557d3e.js +0 -166
|
@@ -6,7 +6,7 @@ var TRPCError = require('../../TRPCError-16b2e52d.js');
|
|
|
6
6
|
require('../../index-4a823936.js');
|
|
7
7
|
require('../../codes-0eeb600d.js');
|
|
8
8
|
require('../../config-f3ce0144.js');
|
|
9
|
-
var resolveHTTPResponse = require('../../resolveHTTPResponse-
|
|
9
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-2c307e04.js');
|
|
10
10
|
require('../../transformTRPCResponse-48d70ef6.js');
|
|
11
11
|
require('../../contentType-8356d528.js');
|
|
12
12
|
|
|
@@ -2,7 +2,7 @@ import { T as TRPCError } from '../../TRPCError-2b10c8d2.mjs';
|
|
|
2
2
|
import '../../index-044a193b.mjs';
|
|
3
3
|
import '../../codes-24aa1ce1.mjs';
|
|
4
4
|
import '../../config-65c5b6d1.mjs';
|
|
5
|
-
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-
|
|
5
|
+
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-a9be3d96.mjs';
|
|
6
6
|
import '../../transformTRPCResponse-3dca0b20.mjs';
|
|
7
7
|
import '../../contentType-acc3be52.mjs';
|
|
8
8
|
|
package/dist/adapters/express.js
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-
|
|
6
|
-
require('../resolveHTTPResponse-9523b4e3.js');
|
|
7
|
-
require('../config-f3ce0144.js');
|
|
8
|
-
require('../TRPCError-16b2e52d.js');
|
|
5
|
+
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-e637755a.js');
|
|
9
6
|
require('../index-4a823936.js');
|
|
10
7
|
require('../codes-0eeb600d.js');
|
|
8
|
+
require('../resolveHTTPResponse-2c307e04.js');
|
|
9
|
+
require('../config-f3ce0144.js');
|
|
10
|
+
require('../TRPCError-16b2e52d.js');
|
|
11
11
|
require('../transformTRPCResponse-48d70ef6.js');
|
|
12
12
|
require('../contentType-8356d528.js');
|
|
13
|
+
require('../batchStreamFormatter-93cdcdd4.js');
|
|
13
14
|
require('./node-http/content-type/json/index.js');
|
|
14
15
|
require('../contentType-8c16408e.js');
|
|
15
16
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
2
|
-
import '../resolveHTTPResponse-4e576698.mjs';
|
|
3
|
-
import '../config-65c5b6d1.mjs';
|
|
4
|
-
import '../TRPCError-2b10c8d2.mjs';
|
|
1
|
+
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-bdad2781.mjs';
|
|
5
2
|
import '../index-044a193b.mjs';
|
|
6
3
|
import '../codes-24aa1ce1.mjs';
|
|
4
|
+
import '../resolveHTTPResponse-a9be3d96.mjs';
|
|
5
|
+
import '../config-65c5b6d1.mjs';
|
|
6
|
+
import '../TRPCError-2b10c8d2.mjs';
|
|
7
7
|
import '../transformTRPCResponse-3dca0b20.mjs';
|
|
8
8
|
import '../contentType-acc3be52.mjs';
|
|
9
|
+
import '../batchStreamFormatter-fc1ffb26.mjs';
|
|
9
10
|
import './node-http/content-type/json/index.mjs';
|
|
10
11
|
import '../contentType-3194ed5f.mjs';
|
|
11
12
|
|
|
@@ -8,6 +8,6 @@ type FastifyRequestHandlerOptions<TRouter extends AnyRouter, TRequest extends Fa
|
|
|
8
8
|
res: TResponse;
|
|
9
9
|
path: string;
|
|
10
10
|
} & FastifyHandlerOptions<TRouter, TRequest, TResponse>;
|
|
11
|
-
export declare function fastifyRequestHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<
|
|
11
|
+
export declare function fastifyRequestHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<never>;
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=fastifyRequestHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastifyRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fastifyRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,SAAS,EAAsB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAEL,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,qBAAqB,CAC/B,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,IAC5B,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAC3C,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAE5D,KAAK,4BAA4B,CAC/B,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,IAC5B;IACF,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAExD,wBAAsB,qBAAqB,CACzC,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,EAC9B,IAAI,EAAE,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,kBAqFjE"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var node_stream = require('node:stream');
|
|
6
|
+
require('../../index-4a823936.js');
|
|
7
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-2c307e04.js');
|
|
8
|
+
var batchStreamFormatter = require('../../batchStreamFormatter-93cdcdd4.js');
|
|
6
9
|
var adapters_ws = require('../ws.js');
|
|
10
|
+
require('../../codes-0eeb600d.js');
|
|
7
11
|
require('../../config-f3ce0144.js');
|
|
8
12
|
require('../../TRPCError-16b2e52d.js');
|
|
9
|
-
require('../../index-4a823936.js');
|
|
10
|
-
require('../../codes-0eeb600d.js');
|
|
11
13
|
require('../../transformTRPCResponse-48d70ef6.js');
|
|
12
14
|
require('../../contentType-8356d528.js');
|
|
13
15
|
require('../../observable-464116ac.js');
|
|
@@ -23,7 +25,39 @@ async function fastifyRequestHandler(opts) {
|
|
|
23
25
|
headers: opts.req.headers,
|
|
24
26
|
body: opts.req.body ?? 'null'
|
|
25
27
|
};
|
|
26
|
-
|
|
28
|
+
let resolve;
|
|
29
|
+
const promise = new Promise((r)=>resolve = r);
|
|
30
|
+
const onHead = (head)=>{
|
|
31
|
+
if (!opts.res.statusCode || opts.res.statusCode === 200) {
|
|
32
|
+
opts.res.statusCode = head.status;
|
|
33
|
+
}
|
|
34
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
35
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
void opts.res.header(key, value);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
let isStream = false;
|
|
42
|
+
let stream;
|
|
43
|
+
const formatter = batchStreamFormatter.getBatchStreamFormatter();
|
|
44
|
+
const onChunk = ([index, string])=>{
|
|
45
|
+
if (index === -1) {
|
|
46
|
+
// full response, no streaming
|
|
47
|
+
resolve(opts.res.send(string));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!isStream) {
|
|
51
|
+
void opts.res.header('Transfer-Encoding', 'chunked');
|
|
52
|
+
void opts.res.header('Vary', opts.res.hasHeader('Vary') ? 'trpc-batch-mode, ' + opts.res.getHeader('Vary') : 'trpc-batch-mode');
|
|
53
|
+
stream = new node_stream.Readable();
|
|
54
|
+
stream._read = ()=>{}; // eslint-disable-line @typescript-eslint/no-empty-function -- https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
55
|
+
resolve(opts.res.send(stream));
|
|
56
|
+
isStream = true;
|
|
57
|
+
}
|
|
58
|
+
stream.push(formatter(index, string));
|
|
59
|
+
};
|
|
60
|
+
resolveHTTPResponse.resolveHTTPResponse({
|
|
27
61
|
req,
|
|
28
62
|
createContext,
|
|
29
63
|
path: opts.path,
|
|
@@ -35,19 +69,20 @@ async function fastifyRequestHandler(opts) {
|
|
|
35
69
|
...o,
|
|
36
70
|
req: opts.req
|
|
37
71
|
});
|
|
72
|
+
},
|
|
73
|
+
onHead,
|
|
74
|
+
onChunk
|
|
75
|
+
}).then(()=>{
|
|
76
|
+
if (isStream) {
|
|
77
|
+
stream.push(formatter.end());
|
|
78
|
+
stream.push(null); // https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
38
79
|
}
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
res.statusCode = result.status;
|
|
43
|
-
}
|
|
44
|
-
for (const [key, value] of Object.entries(result.headers ?? {})){
|
|
45
|
-
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
46
|
-
continue;
|
|
80
|
+
}).catch(()=>{
|
|
81
|
+
if (isStream) {
|
|
82
|
+
stream.push(null);
|
|
47
83
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
await res.send(result.body);
|
|
84
|
+
});
|
|
85
|
+
return promise;
|
|
51
86
|
}
|
|
52
87
|
|
|
53
88
|
/// <reference types="@fastify/websocket" />
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import '../../index-044a193b.mjs';
|
|
3
|
+
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-a9be3d96.mjs';
|
|
4
|
+
import { g as getBatchStreamFormatter } from '../../batchStreamFormatter-fc1ffb26.mjs';
|
|
2
5
|
import { applyWSSHandler } from '../ws.mjs';
|
|
6
|
+
import '../../codes-24aa1ce1.mjs';
|
|
3
7
|
import '../../config-65c5b6d1.mjs';
|
|
4
8
|
import '../../TRPCError-2b10c8d2.mjs';
|
|
5
|
-
import '../../index-044a193b.mjs';
|
|
6
|
-
import '../../codes-24aa1ce1.mjs';
|
|
7
9
|
import '../../transformTRPCResponse-3dca0b20.mjs';
|
|
8
10
|
import '../../contentType-acc3be52.mjs';
|
|
9
11
|
import '../../observable-ade1bad8.mjs';
|
|
@@ -19,7 +21,39 @@ async function fastifyRequestHandler(opts) {
|
|
|
19
21
|
headers: opts.req.headers,
|
|
20
22
|
body: opts.req.body ?? 'null'
|
|
21
23
|
};
|
|
22
|
-
|
|
24
|
+
let resolve;
|
|
25
|
+
const promise = new Promise((r)=>resolve = r);
|
|
26
|
+
const onHead = (head)=>{
|
|
27
|
+
if (!opts.res.statusCode || opts.res.statusCode === 200) {
|
|
28
|
+
opts.res.statusCode = head.status;
|
|
29
|
+
}
|
|
30
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
31
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
void opts.res.header(key, value);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
let isStream = false;
|
|
38
|
+
let stream;
|
|
39
|
+
const formatter = getBatchStreamFormatter();
|
|
40
|
+
const onChunk = ([index, string])=>{
|
|
41
|
+
if (index === -1) {
|
|
42
|
+
// full response, no streaming
|
|
43
|
+
resolve(opts.res.send(string));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (!isStream) {
|
|
47
|
+
void opts.res.header('Transfer-Encoding', 'chunked');
|
|
48
|
+
void opts.res.header('Vary', opts.res.hasHeader('Vary') ? 'trpc-batch-mode, ' + opts.res.getHeader('Vary') : 'trpc-batch-mode');
|
|
49
|
+
stream = new Readable();
|
|
50
|
+
stream._read = ()=>{}; // eslint-disable-line @typescript-eslint/no-empty-function -- https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
51
|
+
resolve(opts.res.send(stream));
|
|
52
|
+
isStream = true;
|
|
53
|
+
}
|
|
54
|
+
stream.push(formatter(index, string));
|
|
55
|
+
};
|
|
56
|
+
resolveHTTPResponse({
|
|
23
57
|
req,
|
|
24
58
|
createContext,
|
|
25
59
|
path: opts.path,
|
|
@@ -31,19 +65,20 @@ async function fastifyRequestHandler(opts) {
|
|
|
31
65
|
...o,
|
|
32
66
|
req: opts.req
|
|
33
67
|
});
|
|
68
|
+
},
|
|
69
|
+
onHead,
|
|
70
|
+
onChunk
|
|
71
|
+
}).then(()=>{
|
|
72
|
+
if (isStream) {
|
|
73
|
+
stream.push(formatter.end());
|
|
74
|
+
stream.push(null); // https://github.com/fastify/fastify/issues/805#issuecomment-369172154
|
|
34
75
|
}
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
res.statusCode = result.status;
|
|
39
|
-
}
|
|
40
|
-
for (const [key, value] of Object.entries(result.headers ?? {})){
|
|
41
|
-
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
42
|
-
continue;
|
|
76
|
+
}).catch(()=>{
|
|
77
|
+
if (isStream) {
|
|
78
|
+
stream.push(null);
|
|
43
79
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
await res.send(result.body);
|
|
80
|
+
});
|
|
81
|
+
return promise;
|
|
47
82
|
}
|
|
48
83
|
|
|
49
84
|
/// <reference types="@fastify/websocket" />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,0BAA0B,CAAC,OAAO,SAAS,SAAS,IAAI;IAClE,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAEjC,wBAAsB,mBAAmB,CAAC,OAAO,SAAS,SAAS,EACjE,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,QAAQ,CAAC,CAmGnB"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var resolveHTTPResponse = require('../../resolveHTTPResponse-9523b4e3.js');
|
|
6
|
-
require('../../config-f3ce0144.js');
|
|
7
|
-
require('../../TRPCError-16b2e52d.js');
|
|
8
5
|
require('../../index-4a823936.js');
|
|
6
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-2c307e04.js');
|
|
7
|
+
var batchStreamFormatter = require('../../batchStreamFormatter-93cdcdd4.js');
|
|
9
8
|
require('../../codes-0eeb600d.js');
|
|
9
|
+
require('../../config-f3ce0144.js');
|
|
10
|
+
require('../../TRPCError-16b2e52d.js');
|
|
10
11
|
require('../../transformTRPCResponse-48d70ef6.js');
|
|
11
12
|
require('../../contentType-8356d528.js');
|
|
12
13
|
|
|
@@ -26,7 +27,57 @@ async function fetchRequestHandler(opts) {
|
|
|
26
27
|
headers: Object.fromEntries(opts.req.headers),
|
|
27
28
|
body: opts.req.headers.get('content-type') === 'application/json' ? await opts.req.text() : ''
|
|
28
29
|
};
|
|
29
|
-
|
|
30
|
+
let resolve;
|
|
31
|
+
const promise = new Promise((r)=>resolve = r);
|
|
32
|
+
let status = 200;
|
|
33
|
+
const onHead = (head)=>{
|
|
34
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
35
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (typeof value === 'string') {
|
|
39
|
+
resHeaders.set(key, value);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
for (const v of value){
|
|
43
|
+
resHeaders.append(key, v);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
status = head.status;
|
|
47
|
+
};
|
|
48
|
+
let isStream = false;
|
|
49
|
+
let controller;
|
|
50
|
+
let encoder;
|
|
51
|
+
const formatter = batchStreamFormatter.getBatchStreamFormatter();
|
|
52
|
+
const onChunk = ([index, string])=>{
|
|
53
|
+
if (index === -1) {
|
|
54
|
+
// full response, no streaming
|
|
55
|
+
const response = new Response(string || null, {
|
|
56
|
+
status,
|
|
57
|
+
headers: resHeaders
|
|
58
|
+
});
|
|
59
|
+
resolve(response);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (!isStream) {
|
|
63
|
+
resHeaders.set('Transfer-Encoding', 'chunked');
|
|
64
|
+
resHeaders.append('Vary', 'trpc-batch-mode');
|
|
65
|
+
const stream = new ReadableStream({
|
|
66
|
+
start (c) {
|
|
67
|
+
controller = c;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const response1 = new Response(stream, {
|
|
71
|
+
status,
|
|
72
|
+
headers: resHeaders
|
|
73
|
+
});
|
|
74
|
+
resolve(response1);
|
|
75
|
+
encoder = new TextEncoder();
|
|
76
|
+
isStream = true;
|
|
77
|
+
}
|
|
78
|
+
controller.enqueue(encoder.encode(formatter(index, string)));
|
|
79
|
+
};
|
|
80
|
+
resolveHTTPResponse.resolveHTTPResponse({
|
|
30
81
|
req,
|
|
31
82
|
createContext,
|
|
32
83
|
path,
|
|
@@ -38,25 +89,20 @@ async function fetchRequestHandler(opts) {
|
|
|
38
89
|
...o,
|
|
39
90
|
req: opts.req
|
|
40
91
|
});
|
|
92
|
+
},
|
|
93
|
+
onHead,
|
|
94
|
+
onChunk
|
|
95
|
+
}).then(()=>{
|
|
96
|
+
if (isStream) {
|
|
97
|
+
controller.enqueue(encoder.encode(formatter.end()));
|
|
98
|
+
controller.close();
|
|
41
99
|
}
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if (typeof value === 'string') {
|
|
48
|
-
resHeaders.set(key, value);
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
for (const v of value){
|
|
52
|
-
resHeaders.append(key, v);
|
|
100
|
+
}).catch(()=>{
|
|
101
|
+
if (isStream) {
|
|
102
|
+
controller.close();
|
|
53
103
|
}
|
|
54
|
-
}
|
|
55
|
-
const res = new Response(result.body, {
|
|
56
|
-
status: result.status,
|
|
57
|
-
headers: resHeaders
|
|
58
104
|
});
|
|
59
|
-
return
|
|
105
|
+
return promise;
|
|
60
106
|
}
|
|
61
107
|
|
|
62
108
|
exports.fetchRequestHandler = fetchRequestHandler;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-4e576698.mjs';
|
|
2
|
-
import '../../config-65c5b6d1.mjs';
|
|
3
|
-
import '../../TRPCError-2b10c8d2.mjs';
|
|
4
1
|
import '../../index-044a193b.mjs';
|
|
2
|
+
import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-a9be3d96.mjs';
|
|
3
|
+
import { g as getBatchStreamFormatter } from '../../batchStreamFormatter-fc1ffb26.mjs';
|
|
5
4
|
import '../../codes-24aa1ce1.mjs';
|
|
5
|
+
import '../../config-65c5b6d1.mjs';
|
|
6
|
+
import '../../TRPCError-2b10c8d2.mjs';
|
|
6
7
|
import '../../transformTRPCResponse-3dca0b20.mjs';
|
|
7
8
|
import '../../contentType-acc3be52.mjs';
|
|
8
9
|
|
|
@@ -22,7 +23,57 @@ async function fetchRequestHandler(opts) {
|
|
|
22
23
|
headers: Object.fromEntries(opts.req.headers),
|
|
23
24
|
body: opts.req.headers.get('content-type') === 'application/json' ? await opts.req.text() : ''
|
|
24
25
|
};
|
|
25
|
-
|
|
26
|
+
let resolve;
|
|
27
|
+
const promise = new Promise((r)=>resolve = r);
|
|
28
|
+
let status = 200;
|
|
29
|
+
const onHead = (head)=>{
|
|
30
|
+
for (const [key, value] of Object.entries(head.headers ?? {})){
|
|
31
|
+
/* istanbul ignore if -- @preserve */ if (typeof value === 'undefined') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === 'string') {
|
|
35
|
+
resHeaders.set(key, value);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
for (const v of value){
|
|
39
|
+
resHeaders.append(key, v);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
status = head.status;
|
|
43
|
+
};
|
|
44
|
+
let isStream = false;
|
|
45
|
+
let controller;
|
|
46
|
+
let encoder;
|
|
47
|
+
const formatter = getBatchStreamFormatter();
|
|
48
|
+
const onChunk = ([index, string])=>{
|
|
49
|
+
if (index === -1) {
|
|
50
|
+
// full response, no streaming
|
|
51
|
+
const response = new Response(string || null, {
|
|
52
|
+
status,
|
|
53
|
+
headers: resHeaders
|
|
54
|
+
});
|
|
55
|
+
resolve(response);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!isStream) {
|
|
59
|
+
resHeaders.set('Transfer-Encoding', 'chunked');
|
|
60
|
+
resHeaders.append('Vary', 'trpc-batch-mode');
|
|
61
|
+
const stream = new ReadableStream({
|
|
62
|
+
start (c) {
|
|
63
|
+
controller = c;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const response1 = new Response(stream, {
|
|
67
|
+
status,
|
|
68
|
+
headers: resHeaders
|
|
69
|
+
});
|
|
70
|
+
resolve(response1);
|
|
71
|
+
encoder = new TextEncoder();
|
|
72
|
+
isStream = true;
|
|
73
|
+
}
|
|
74
|
+
controller.enqueue(encoder.encode(formatter(index, string)));
|
|
75
|
+
};
|
|
76
|
+
resolveHTTPResponse({
|
|
26
77
|
req,
|
|
27
78
|
createContext,
|
|
28
79
|
path,
|
|
@@ -34,25 +85,20 @@ async function fetchRequestHandler(opts) {
|
|
|
34
85
|
...o,
|
|
35
86
|
req: opts.req
|
|
36
87
|
});
|
|
88
|
+
},
|
|
89
|
+
onHead,
|
|
90
|
+
onChunk
|
|
91
|
+
}).then(()=>{
|
|
92
|
+
if (isStream) {
|
|
93
|
+
controller.enqueue(encoder.encode(formatter.end()));
|
|
94
|
+
controller.close();
|
|
37
95
|
}
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (typeof value === 'string') {
|
|
44
|
-
resHeaders.set(key, value);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
for (const v of value){
|
|
48
|
-
resHeaders.append(key, v);
|
|
96
|
+
}).catch(()=>{
|
|
97
|
+
if (isStream) {
|
|
98
|
+
controller.close();
|
|
49
99
|
}
|
|
50
|
-
}
|
|
51
|
-
const res = new Response(result.body, {
|
|
52
|
-
status: result.status,
|
|
53
|
-
headers: resHeaders
|
|
54
100
|
});
|
|
55
|
-
return
|
|
101
|
+
return promise;
|
|
56
102
|
}
|
|
57
103
|
|
|
58
104
|
export { fetchRequestHandler };
|
package/dist/adapters/next.js
CHANGED
|
@@ -4,12 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var TRPCError = require('../TRPCError-16b2e52d.js');
|
|
6
6
|
var transformTRPCResponse = require('../transformTRPCResponse-48d70ef6.js');
|
|
7
|
-
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-
|
|
7
|
+
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-e637755a.js');
|
|
8
8
|
require('../index-4a823936.js');
|
|
9
9
|
require('../codes-0eeb600d.js');
|
|
10
|
-
require('../resolveHTTPResponse-
|
|
10
|
+
require('../resolveHTTPResponse-2c307e04.js');
|
|
11
11
|
require('../config-f3ce0144.js');
|
|
12
12
|
require('../contentType-8356d528.js');
|
|
13
|
+
require('../batchStreamFormatter-93cdcdd4.js');
|
|
13
14
|
require('./node-http/content-type/json/index.js');
|
|
14
15
|
require('../contentType-8c16408e.js');
|
|
15
16
|
|
package/dist/adapters/next.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { T as TRPCError } from '../TRPCError-2b10c8d2.mjs';
|
|
2
2
|
import { g as getErrorShape } from '../transformTRPCResponse-3dca0b20.mjs';
|
|
3
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
3
|
+
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-bdad2781.mjs';
|
|
4
4
|
import '../index-044a193b.mjs';
|
|
5
5
|
import '../codes-24aa1ce1.mjs';
|
|
6
|
-
import '../resolveHTTPResponse-
|
|
6
|
+
import '../resolveHTTPResponse-a9be3d96.mjs';
|
|
7
7
|
import '../config-65c5b6d1.mjs';
|
|
8
8
|
import '../contentType-acc3be52.mjs';
|
|
9
|
+
import '../batchStreamFormatter-fc1ffb26.mjs';
|
|
9
10
|
import './node-http/content-type/json/index.mjs';
|
|
10
11
|
import '../contentType-3194ed5f.mjs';
|
|
11
12
|
|
|
@@ -10,15 +10,6 @@ var promises = require('node:fs/promises');
|
|
|
10
10
|
var node_os = require('node:os');
|
|
11
11
|
var node_path = require('node:path');
|
|
12
12
|
var node_util = require('node:util');
|
|
13
|
-
var _class_private_field_get = require('@swc/helpers/src/_class_private_field_get.mjs');
|
|
14
|
-
var _class_private_field_init = require('@swc/helpers/src/_class_private_field_init.mjs');
|
|
15
|
-
var _class_private_field_set = require('@swc/helpers/src/_class_private_field_set.mjs');
|
|
16
|
-
|
|
17
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
-
|
|
19
|
-
var _class_private_field_get__default = /*#__PURE__*/_interopDefaultLegacy(_class_private_field_get);
|
|
20
|
-
var _class_private_field_init__default = /*#__PURE__*/_interopDefaultLegacy(_class_private_field_init);
|
|
21
|
-
var _class_private_field_set__default = /*#__PURE__*/_interopDefaultLegacy(_class_private_field_set);
|
|
22
13
|
|
|
23
14
|
function stringToArray(s) {
|
|
24
15
|
const utf8 = unescape(encodeURIComponent(s));
|
|
@@ -454,26 +445,25 @@ function createMemoryUploadHandler({ filter , maxPartSize =3000000 } = {}) {
|
|
|
454
445
|
};
|
|
455
446
|
}
|
|
456
447
|
|
|
457
|
-
var _start = /*#__PURE__*/ new WeakMap(), _end = /*#__PURE__*/ new WeakMap(), _offset = /*#__PURE__*/ new WeakMap(), _emitUp = /*#__PURE__*/ new WeakMap(), _emitDown = /*#__PURE__*/ new WeakMap();
|
|
458
448
|
class SliceStream extends node_stream.Transform {
|
|
459
449
|
_transform(chunk, _, done) {
|
|
460
|
-
|
|
461
|
-
if (!
|
|
462
|
-
|
|
463
|
-
const start = chunk.length - (
|
|
464
|
-
if (
|
|
465
|
-
const end = chunk.length - (
|
|
466
|
-
|
|
450
|
+
this.indexOffset += chunk.length;
|
|
451
|
+
if (!this.emitUp && this.indexOffset >= this.startIndex) {
|
|
452
|
+
this.emitUp = true;
|
|
453
|
+
const start = chunk.length - (this.indexOffset - this.startIndex);
|
|
454
|
+
if (this.indexOffset > this.endIndex) {
|
|
455
|
+
const end = chunk.length - (this.indexOffset - this.endIndex);
|
|
456
|
+
this.emitDown = true;
|
|
467
457
|
this.push(chunk.slice(start, end));
|
|
468
458
|
} else {
|
|
469
459
|
this.push(chunk.slice(start, chunk.length));
|
|
470
460
|
}
|
|
471
461
|
return done();
|
|
472
462
|
}
|
|
473
|
-
if (
|
|
474
|
-
if (
|
|
475
|
-
|
|
476
|
-
this.push(chunk.slice(0, chunk.length - (
|
|
463
|
+
if (this.emitUp && !this.emitDown) {
|
|
464
|
+
if (this.indexOffset >= this.endIndex) {
|
|
465
|
+
this.emitDown = true;
|
|
466
|
+
this.push(chunk.slice(0, chunk.length - (this.indexOffset - this.endIndex)));
|
|
477
467
|
} else {
|
|
478
468
|
this.push(chunk);
|
|
479
469
|
}
|
|
@@ -481,34 +471,17 @@ class SliceStream extends node_stream.Transform {
|
|
|
481
471
|
}
|
|
482
472
|
return done();
|
|
483
473
|
}
|
|
484
|
-
constructor(
|
|
474
|
+
constructor(startIndex = 0, endIndex = Infinity){
|
|
485
475
|
super();
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
writable: true,
|
|
492
|
-
value: void 0
|
|
493
|
-
});
|
|
494
|
-
_class_private_field_init__default["default"](this, _offset, {
|
|
495
|
-
writable: true,
|
|
496
|
-
value: 0
|
|
497
|
-
});
|
|
498
|
-
_class_private_field_init__default["default"](this, _emitUp, {
|
|
499
|
-
writable: true,
|
|
500
|
-
value: false
|
|
501
|
-
});
|
|
502
|
-
_class_private_field_init__default["default"](this, _emitDown, {
|
|
503
|
-
writable: true,
|
|
504
|
-
value: false
|
|
505
|
-
});
|
|
506
|
-
_class_private_field_set__default["default"](this, _start, start);
|
|
507
|
-
_class_private_field_set__default["default"](this, _end, end);
|
|
476
|
+
this.startIndex = startIndex;
|
|
477
|
+
this.endIndex = endIndex;
|
|
478
|
+
this.indexOffset = 0;
|
|
479
|
+
this.emitUp = false;
|
|
480
|
+
this.emitDown = false;
|
|
508
481
|
}
|
|
509
482
|
}
|
|
510
|
-
function streamSlice(
|
|
511
|
-
return new SliceStream(
|
|
483
|
+
function streamSlice(startIndex = 0, endIndex = Infinity) {
|
|
484
|
+
return new SliceStream(startIndex, endIndex);
|
|
512
485
|
}
|
|
513
486
|
|
|
514
487
|
async function readableStreamToString(stream, encoding) {
|