@trpc/server 11.0.0-rc.621 → 11.0.0-rc.632
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/@trpc/server/http.d.ts +1 -1
- package/dist/@trpc/server/http.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/getPlanner.js +2 -2
- package/dist/adapters/aws-lambda/getPlanner.mjs +2 -2
- package/dist/adapters/aws-lambda/index.js +2 -0
- package/dist/adapters/aws-lambda/index.mjs +2 -0
- package/dist/adapters/express.js +2 -0
- package/dist/adapters/express.mjs +2 -0
- package/dist/adapters/fastify/fastifyRequestHandler.js +3 -1
- package/dist/adapters/fastify/fastifyRequestHandler.mjs +3 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.js +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.js +8 -6
- package/dist/adapters/fetch/fetchRequestHandler.mjs +8 -6
- package/dist/adapters/next-app-dir/nextAppDirCaller.js +6 -4
- package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +6 -4
- package/dist/adapters/next-app-dir/notFound.js +2 -0
- package/dist/adapters/next-app-dir/notFound.mjs +2 -0
- package/dist/adapters/next-app-dir/redirect.js +4 -1
- package/dist/adapters/next-app-dir/redirect.mjs +4 -1
- package/dist/adapters/next-app-dir/rethrowNextErrors.js +1 -1
- package/dist/adapters/next-app-dir/rethrowNextErrors.mjs +1 -1
- package/dist/adapters/next.js +2 -0
- package/dist/adapters/next.mjs +2 -0
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts +1 -1
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
- package/dist/adapters/node-http/incomingMessageToRequest.js +8 -5
- package/dist/adapters/node-http/incomingMessageToRequest.mjs +8 -5
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +11 -43
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +11 -43
- package/dist/adapters/node-http/writeResponse.d.ts +18 -0
- package/dist/adapters/node-http/writeResponse.d.ts.map +1 -0
- package/dist/adapters/node-http/writeResponse.js +85 -0
- package/dist/adapters/node-http/writeResponse.mjs +82 -0
- package/dist/adapters/standalone.js +2 -0
- package/dist/adapters/standalone.mjs +2 -0
- package/dist/adapters/ws.js +11 -10
- package/dist/adapters/ws.mjs +11 -10
- package/dist/bundle-analysis.json +230 -186
- package/dist/http.js +2 -2
- package/dist/http.mjs +2 -1
- package/dist/index.js +2 -0
- package/dist/index.mjs +2 -0
- package/dist/node_modules/.pnpm/@swc_helpers@0.5.13/node_modules/@swc/helpers/esm/_define_property.js +11 -0
- package/dist/node_modules/.pnpm/@swc_helpers@0.5.13/node_modules/@swc/helpers/esm/_define_property.mjs +9 -0
- package/dist/observable/observable.js +1 -1
- package/dist/observable/observable.mjs +1 -1
- package/dist/rpc.js +2 -0
- package/dist/rpc.mjs +2 -0
- package/dist/shared.js +2 -0
- package/dist/shared.mjs +2 -0
- package/dist/unstable-core-do-not-import/createProxy.js +1 -1
- package/dist/unstable-core-do-not-import/createProxy.mjs +1 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.js +4 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.mjs +4 -1
- package/dist/unstable-core-do-not-import/error/formatter.js +1 -1
- package/dist/unstable-core-do-not-import/error/formatter.mjs +1 -1
- package/dist/unstable-core-do-not-import/error/getErrorShape.js +2 -2
- package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +2 -2
- package/dist/unstable-core-do-not-import/http/contentType.js +3 -3
- package/dist/unstable-core-do-not-import/http/contentType.mjs +3 -3
- package/dist/unstable-core-do-not-import/http/isAbortError.d.ts +4 -0
- package/dist/unstable-core-do-not-import/http/isAbortError.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/isAbortError.js +9 -0
- package/dist/unstable-core-do-not-import/http/isAbortError.mjs +7 -0
- package/dist/unstable-core-do-not-import/http/resolveResponse.js +24 -24
- package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +24 -24
- package/dist/unstable-core-do-not-import/middleware.js +1 -1
- package/dist/unstable-core-do-not-import/middleware.mjs +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.js +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +1 -1
- package/dist/unstable-core-do-not-import/router.js +2 -2
- package/dist/unstable-core-do-not-import/router.mjs +2 -2
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.js +2 -2
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +2 -2
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts +6 -9
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/jsonl.js +86 -136
- package/dist/unstable-core-do-not-import/stream/jsonl.mjs +87 -137
- package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/sse.js +27 -23
- package/dist/unstable-core-do-not-import/stream/sse.mjs +28 -24
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts +10 -10
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.js +47 -34
- package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +47 -34
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +0 -4
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +0 -11
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +1 -11
- package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.d.ts +6 -0
- package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.js +28 -0
- package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.mjs +25 -0
- package/dist/unstable-core-do-not-import/stream/utils/withPing.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/utils/withPing.js +17 -17
- package/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +17 -17
- package/dist/unstable-core-do-not-import/stream/utils/withRefCount.d.ts +17 -0
- package/dist/unstable-core-do-not-import/stream/utils/withRefCount.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/withRefCount.js +59 -0
- package/dist/unstable-core-do-not-import/stream/utils/withRefCount.mjs +57 -0
- package/dist/unstable-core-do-not-import.d.ts +2 -2
- package/dist/unstable-core-do-not-import.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import.js +2 -2
- package/dist/unstable-core-do-not-import.mjs +1 -1
- package/dist/vendor/unpromise/unpromise.js +21 -16
- package/dist/vendor/unpromise/unpromise.mjs +21 -16
- package/package.json +12 -5
- package/src/@trpc/server/http.ts +0 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/node-http/incomingMessageToRequest.ts +8 -4
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +8 -46
- package/src/adapters/node-http/writeResponse.ts +96 -0
- package/src/unstable-core-do-not-import/http/isAbortError.ts +7 -0
- package/src/unstable-core-do-not-import/stream/jsonl.ts +85 -154
- package/src/unstable-core-do-not-import/stream/sse.ts +24 -25
- package/src/unstable-core-do-not-import/stream/utils/asyncIterable.ts +58 -37
- package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +0 -13
- package/src/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.ts +27 -0
- package/src/unstable-core-do-not-import/stream/utils/withPing.ts +31 -19
- package/src/unstable-core-do-not-import/stream/utils/withRefCount.ts +93 -0
- package/src/unstable-core-do-not-import.ts +2 -2
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts +0 -24
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.js +0 -32
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.mjs +0 -30
- package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.d.ts +0 -8
- package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.js +0 -38
- package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.mjs +0 -36
- package/src/unstable-core-do-not-import/http/batchStreamFormatter.ts +0 -29
- package/src/unstable-core-do-not-import/stream/utils/promiseTimer.ts +0 -40
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { NodeHTTPResponse } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare function writeResponseBody(opts: {
|
|
6
|
+
res: NodeHTTPResponse;
|
|
7
|
+
signal: AbortSignal;
|
|
8
|
+
body: NonNullable<Response['body']>;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function writeResponse(opts: {
|
|
14
|
+
request: Request;
|
|
15
|
+
response: Response;
|
|
16
|
+
rawResponse: NodeHTTPResponse;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=writeResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeResponse.d.ts","sourceRoot":"","sources":["../../../src/adapters/node-http/writeResponse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAyBhD;;GAEG;AAEH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,GAAG,EAAE,gBAAgB,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CACrC,iBAyBA;AACD;;GAEG;AAEH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,gBAAgB,CAAC;CAC/B,iBA0BA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var isAbortError = require('../../unstable-core-do-not-import/http/isAbortError.js');
|
|
4
|
+
require('../../vendor/unpromise/unpromise.js');
|
|
5
|
+
require('../../unstable-core-do-not-import/stream/utils/disposablePromiseTimer.js');
|
|
6
|
+
require('../../unstable-core-do-not-import/rootConfig.js');
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line no-restricted-imports
|
|
9
|
+
async function writeResponseBodyChunk(res, chunk) {
|
|
10
|
+
if (res.write(chunk) === false) {
|
|
11
|
+
await new Promise((resolve, reject)=>{
|
|
12
|
+
const onError = (err)=>{
|
|
13
|
+
reject(err);
|
|
14
|
+
cleanup();
|
|
15
|
+
};
|
|
16
|
+
const onDrain = ()=>{
|
|
17
|
+
resolve();
|
|
18
|
+
cleanup();
|
|
19
|
+
};
|
|
20
|
+
const cleanup = ()=>{
|
|
21
|
+
res.off('error', onError);
|
|
22
|
+
res.off('drain', onDrain);
|
|
23
|
+
};
|
|
24
|
+
res.once('error', onError);
|
|
25
|
+
res.once('drain', onDrain);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/ async function writeResponseBody(opts) {
|
|
32
|
+
const { res } = opts;
|
|
33
|
+
try {
|
|
34
|
+
const writableStream = new WritableStream({
|
|
35
|
+
async write (chunk) {
|
|
36
|
+
await writeResponseBodyChunk(res, chunk);
|
|
37
|
+
res.flush?.();
|
|
38
|
+
},
|
|
39
|
+
abort () {
|
|
40
|
+
if (!res.headersSent) {
|
|
41
|
+
res.statusCode = 500;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
await opts.body.pipeTo(writableStream, {
|
|
46
|
+
signal: opts.signal
|
|
47
|
+
});
|
|
48
|
+
} catch (err) {
|
|
49
|
+
if (isAbortError.isAbortError(err)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @internal
|
|
57
|
+
*/ async function writeResponse(opts) {
|
|
58
|
+
const { response, rawResponse } = opts;
|
|
59
|
+
// Only override status code if it hasn't been explicitly set in a procedure etc
|
|
60
|
+
if (rawResponse.statusCode === 200) {
|
|
61
|
+
rawResponse.statusCode = response.status;
|
|
62
|
+
}
|
|
63
|
+
for (const [key, value] of response.headers){
|
|
64
|
+
rawResponse.setHeader(key, value);
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
if (response.body) {
|
|
68
|
+
await writeResponseBody({
|
|
69
|
+
res: rawResponse,
|
|
70
|
+
signal: opts.request.signal,
|
|
71
|
+
body: response.body
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
} catch (err) {
|
|
75
|
+
if (!rawResponse.headersSent) {
|
|
76
|
+
rawResponse.statusCode = 500;
|
|
77
|
+
}
|
|
78
|
+
throw err;
|
|
79
|
+
} finally{
|
|
80
|
+
rawResponse.end();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
exports.writeResponse = writeResponse;
|
|
85
|
+
exports.writeResponseBody = writeResponseBody;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { isAbortError } from '../../unstable-core-do-not-import/http/isAbortError.mjs';
|
|
2
|
+
import '../../vendor/unpromise/unpromise.mjs';
|
|
3
|
+
import '../../unstable-core-do-not-import/stream/utils/disposablePromiseTimer.mjs';
|
|
4
|
+
import '../../unstable-core-do-not-import/rootConfig.mjs';
|
|
5
|
+
|
|
6
|
+
// eslint-disable-next-line no-restricted-imports
|
|
7
|
+
async function writeResponseBodyChunk(res, chunk) {
|
|
8
|
+
if (res.write(chunk) === false) {
|
|
9
|
+
await new Promise((resolve, reject)=>{
|
|
10
|
+
const onError = (err)=>{
|
|
11
|
+
reject(err);
|
|
12
|
+
cleanup();
|
|
13
|
+
};
|
|
14
|
+
const onDrain = ()=>{
|
|
15
|
+
resolve();
|
|
16
|
+
cleanup();
|
|
17
|
+
};
|
|
18
|
+
const cleanup = ()=>{
|
|
19
|
+
res.off('error', onError);
|
|
20
|
+
res.off('drain', onDrain);
|
|
21
|
+
};
|
|
22
|
+
res.once('error', onError);
|
|
23
|
+
res.once('drain', onDrain);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/ async function writeResponseBody(opts) {
|
|
30
|
+
const { res } = opts;
|
|
31
|
+
try {
|
|
32
|
+
const writableStream = new WritableStream({
|
|
33
|
+
async write (chunk) {
|
|
34
|
+
await writeResponseBodyChunk(res, chunk);
|
|
35
|
+
res.flush?.();
|
|
36
|
+
},
|
|
37
|
+
abort () {
|
|
38
|
+
if (!res.headersSent) {
|
|
39
|
+
res.statusCode = 500;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
await opts.body.pipeTo(writableStream, {
|
|
44
|
+
signal: opts.signal
|
|
45
|
+
});
|
|
46
|
+
} catch (err) {
|
|
47
|
+
if (isAbortError(err)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @internal
|
|
55
|
+
*/ async function writeResponse(opts) {
|
|
56
|
+
const { response, rawResponse } = opts;
|
|
57
|
+
// Only override status code if it hasn't been explicitly set in a procedure etc
|
|
58
|
+
if (rawResponse.statusCode === 200) {
|
|
59
|
+
rawResponse.statusCode = response.status;
|
|
60
|
+
}
|
|
61
|
+
for (const [key, value] of response.headers){
|
|
62
|
+
rawResponse.setHeader(key, value);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
if (response.body) {
|
|
66
|
+
await writeResponseBody({
|
|
67
|
+
res: rawResponse,
|
|
68
|
+
signal: opts.request.signal,
|
|
69
|
+
body: response.body
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
if (!rawResponse.headersSent) {
|
|
74
|
+
rawResponse.statusCode = 500;
|
|
75
|
+
}
|
|
76
|
+
throw err;
|
|
77
|
+
} finally{
|
|
78
|
+
rawResponse.end();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export { writeResponse, writeResponseBody };
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var http = require('node:http');
|
|
4
4
|
var utils = require('../unstable-core-do-not-import/utils.js');
|
|
5
|
+
require('../vendor/unpromise/unpromise.js');
|
|
6
|
+
require('../unstable-core-do-not-import/stream/utils/disposablePromiseTimer.js');
|
|
5
7
|
require('../unstable-core-do-not-import/rootConfig.js');
|
|
6
8
|
var nodeHTTPRequestHandler = require('./node-http/nodeHTTPRequestHandler.js');
|
|
7
9
|
var incomingMessageToRequest = require('./node-http/incomingMessageToRequest.js');
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import { run } from '../unstable-core-do-not-import/utils.mjs';
|
|
3
|
+
import '../vendor/unpromise/unpromise.mjs';
|
|
4
|
+
import '../unstable-core-do-not-import/stream/utils/disposablePromiseTimer.mjs';
|
|
3
5
|
import '../unstable-core-do-not-import/rootConfig.mjs';
|
|
4
6
|
import { nodeHTTPRequestHandler, internal_exceptionHandler } from './node-http/nodeHTTPRequestHandler.mjs';
|
|
5
7
|
import { createURL } from './node-http/incomingMessageToRequest.mjs';
|
package/dist/adapters/ws.js
CHANGED
|
@@ -6,8 +6,9 @@ var utils = require('../unstable-core-do-not-import/utils.js');
|
|
|
6
6
|
var parseConnectionParams = require('../unstable-core-do-not-import/http/parseConnectionParams.js');
|
|
7
7
|
var parseTRPCMessage = require('../unstable-core-do-not-import/rpc/parseTRPCMessage.js');
|
|
8
8
|
var observable = require('../observable/observable.js');
|
|
9
|
-
var unpromise = require('../vendor/unpromise/unpromise.js');
|
|
10
9
|
var tracked = require('../unstable-core-do-not-import/stream/tracked.js');
|
|
10
|
+
var unpromise = require('../vendor/unpromise/unpromise.js');
|
|
11
|
+
require('../unstable-core-do-not-import/stream/utils/disposablePromiseTimer.js');
|
|
11
12
|
var transformer = require('../unstable-core-do-not-import/transformer.js');
|
|
12
13
|
require('../unstable-core-do-not-import/rootConfig.js');
|
|
13
14
|
var router = require('../unstable-core-do-not-import/router.js');
|
|
@@ -19,13 +20,13 @@ var incomingMessageToRequest = require('./node-http/incomingMessageToRequest.js'
|
|
|
19
20
|
*/ const WEBSOCKET_OPEN = 1; /* ws.WebSocket.OPEN */
|
|
20
21
|
const unsetContextPromiseSymbol = Symbol('unsetContextPromise');
|
|
21
22
|
function getWSConnectionHandler(opts) {
|
|
22
|
-
const { createContext
|
|
23
|
-
const { transformer: transformer$1
|
|
23
|
+
const { createContext, router: router$1 } = opts;
|
|
24
|
+
const { transformer: transformer$1 } = router$1._def._config;
|
|
24
25
|
return async (client, req)=>{
|
|
25
26
|
const clientSubscriptions = new Map();
|
|
26
27
|
const abortController = new AbortController();
|
|
27
28
|
if (opts.keepAlive?.enabled) {
|
|
28
|
-
const { pingMs
|
|
29
|
+
const { pingMs, pongWaitMs } = opts.keepAlive;
|
|
29
30
|
handleKeepAlive(client, pingMs, pongWaitMs);
|
|
30
31
|
}
|
|
31
32
|
function respond(untransformedJSON) {
|
|
@@ -82,7 +83,7 @@ function getWSConnectionHandler(opts) {
|
|
|
82
83
|
* - if connection params are expected, they will be created once received
|
|
83
84
|
*/ let ctxPromise = incomingMessageToRequest.createURL(req).searchParams.get('connectionParams') === '1' ? unsetContextPromiseSymbol : createCtxPromise(()=>null);
|
|
84
85
|
async function handleRequest(msg) {
|
|
85
|
-
const { id
|
|
86
|
+
const { id, jsonrpc } = msg;
|
|
86
87
|
/* istanbul ignore next -- @preserve */ if (id === null) {
|
|
87
88
|
throw new TRPCError.TRPCError({
|
|
88
89
|
code: 'BAD_REQUEST',
|
|
@@ -93,8 +94,8 @@ function getWSConnectionHandler(opts) {
|
|
|
93
94
|
clientSubscriptions.get(id)?.abort();
|
|
94
95
|
return;
|
|
95
96
|
}
|
|
96
|
-
const { path
|
|
97
|
-
let { input
|
|
97
|
+
const { path, lastEventId } = msg.params;
|
|
98
|
+
let { input } = msg.params;
|
|
98
99
|
const type = msg.method;
|
|
99
100
|
try {
|
|
100
101
|
if (lastEventId !== undefined) {
|
|
@@ -207,10 +208,10 @@ function getWSConnectionHandler(opts) {
|
|
|
207
208
|
data: next.value
|
|
208
209
|
};
|
|
209
210
|
if (tracked.isTrackedEnvelope(next.value)) {
|
|
210
|
-
const [
|
|
211
|
-
result.id =
|
|
211
|
+
const [id, data] = next.value;
|
|
212
|
+
result.id = id;
|
|
212
213
|
result.data = {
|
|
213
|
-
id
|
|
214
|
+
id,
|
|
214
215
|
data
|
|
215
216
|
};
|
|
216
217
|
}
|
package/dist/adapters/ws.mjs
CHANGED
|
@@ -4,8 +4,9 @@ import { run, isObject, isAsyncIterable } from '../unstable-core-do-not-import/u
|
|
|
4
4
|
import { parseConnectionParamsFromUnknown } from '../unstable-core-do-not-import/http/parseConnectionParams.mjs';
|
|
5
5
|
import { parseTRPCMessage } from '../unstable-core-do-not-import/rpc/parseTRPCMessage.mjs';
|
|
6
6
|
import { isObservable, observableToAsyncIterable } from '../observable/observable.mjs';
|
|
7
|
-
import { Unpromise } from '../vendor/unpromise/unpromise.mjs';
|
|
8
7
|
import { isTrackedEnvelope } from '../unstable-core-do-not-import/stream/tracked.mjs';
|
|
8
|
+
import { Unpromise } from '../vendor/unpromise/unpromise.mjs';
|
|
9
|
+
import '../unstable-core-do-not-import/stream/utils/disposablePromiseTimer.mjs';
|
|
9
10
|
import { transformTRPCResponse } from '../unstable-core-do-not-import/transformer.mjs';
|
|
10
11
|
import '../unstable-core-do-not-import/rootConfig.mjs';
|
|
11
12
|
import { callProcedure } from '../unstable-core-do-not-import/router.mjs';
|
|
@@ -17,13 +18,13 @@ import { createURL } from './node-http/incomingMessageToRequest.mjs';
|
|
|
17
18
|
*/ const WEBSOCKET_OPEN = 1; /* ws.WebSocket.OPEN */
|
|
18
19
|
const unsetContextPromiseSymbol = Symbol('unsetContextPromise');
|
|
19
20
|
function getWSConnectionHandler(opts) {
|
|
20
|
-
const { createContext
|
|
21
|
-
const { transformer
|
|
21
|
+
const { createContext, router } = opts;
|
|
22
|
+
const { transformer } = router._def._config;
|
|
22
23
|
return async (client, req)=>{
|
|
23
24
|
const clientSubscriptions = new Map();
|
|
24
25
|
const abortController = new AbortController();
|
|
25
26
|
if (opts.keepAlive?.enabled) {
|
|
26
|
-
const { pingMs
|
|
27
|
+
const { pingMs, pongWaitMs } = opts.keepAlive;
|
|
27
28
|
handleKeepAlive(client, pingMs, pongWaitMs);
|
|
28
29
|
}
|
|
29
30
|
function respond(untransformedJSON) {
|
|
@@ -80,7 +81,7 @@ function getWSConnectionHandler(opts) {
|
|
|
80
81
|
* - if connection params are expected, they will be created once received
|
|
81
82
|
*/ let ctxPromise = createURL(req).searchParams.get('connectionParams') === '1' ? unsetContextPromiseSymbol : createCtxPromise(()=>null);
|
|
82
83
|
async function handleRequest(msg) {
|
|
83
|
-
const { id
|
|
84
|
+
const { id, jsonrpc } = msg;
|
|
84
85
|
/* istanbul ignore next -- @preserve */ if (id === null) {
|
|
85
86
|
throw new TRPCError({
|
|
86
87
|
code: 'BAD_REQUEST',
|
|
@@ -91,8 +92,8 @@ function getWSConnectionHandler(opts) {
|
|
|
91
92
|
clientSubscriptions.get(id)?.abort();
|
|
92
93
|
return;
|
|
93
94
|
}
|
|
94
|
-
const { path
|
|
95
|
-
let { input
|
|
95
|
+
const { path, lastEventId } = msg.params;
|
|
96
|
+
let { input } = msg.params;
|
|
96
97
|
const type = msg.method;
|
|
97
98
|
try {
|
|
98
99
|
if (lastEventId !== undefined) {
|
|
@@ -205,10 +206,10 @@ function getWSConnectionHandler(opts) {
|
|
|
205
206
|
data: next.value
|
|
206
207
|
};
|
|
207
208
|
if (isTrackedEnvelope(next.value)) {
|
|
208
|
-
const [
|
|
209
|
-
result.id =
|
|
209
|
+
const [id, data] = next.value;
|
|
210
|
+
result.id = id;
|
|
210
211
|
result.data = {
|
|
211
|
-
id
|
|
212
|
+
id,
|
|
212
213
|
data
|
|
213
214
|
};
|
|
214
215
|
}
|