@trpc/server 11.0.0-rc.452 → 11.0.0-rc.455
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/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +3 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +3 -1
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +4 -1
- package/dist/adapters/ws.mjs +4 -1
- package/dist/bundle-analysis.json +86 -85
- package/dist/observable/observable.d.ts +1 -4
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/observable/observable.js +6 -18
- package/dist/observable/observable.mjs +6 -18
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/contentType.js +6 -3
- package/dist/unstable-core-do-not-import/http/contentType.mjs +6 -3
- package/dist/unstable-core-do-not-import/http/types.d.ts +5 -0
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts +8 -3
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/jsonl.js +66 -32
- package/dist/unstable-core-do-not-import/stream/jsonl.mjs +66 -32
- package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import.d.ts +1 -0
- package/dist/unstable-core-do-not-import.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import.js +3 -0
- package/dist/unstable-core-do-not-import.mjs +1 -0
- package/package.json +2 -2
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +3 -1
- package/src/adapters/ws.ts +3 -0
- package/src/observable/observable.ts +6 -19
- package/src/unstable-core-do-not-import/http/contentType.ts +3 -0
- package/src/unstable-core-do-not-import/http/types.ts +5 -0
- package/src/unstable-core-do-not-import/stream/jsonl.ts +88 -43
- package/src/unstable-core-do-not-import/stream/utils/createServer.ts +1 -3
- package/src/unstable-core-do-not-import.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentType.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/contentType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"contentType.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/contentType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAwQF,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CAG3E"}
|
|
@@ -128,7 +128,8 @@ const jsonContentTypeHandler = {
|
|
|
128
128
|
accept: req.headers.get('trpc-accept'),
|
|
129
129
|
calls,
|
|
130
130
|
type,
|
|
131
|
-
connectionParams: connectionParamsStr === null ? null : parseConnectionParams.parseConnectionParamsFromString(connectionParamsStr)
|
|
131
|
+
connectionParams: connectionParamsStr === null ? null : parseConnectionParams.parseConnectionParamsFromString(connectionParamsStr),
|
|
132
|
+
signal: req.signal
|
|
132
133
|
};
|
|
133
134
|
return info;
|
|
134
135
|
}
|
|
@@ -161,7 +162,8 @@ const formDataContentTypeHandler = {
|
|
|
161
162
|
],
|
|
162
163
|
isBatchCall: false,
|
|
163
164
|
type: 'mutation',
|
|
164
|
-
connectionParams: null
|
|
165
|
+
connectionParams: null,
|
|
166
|
+
signal: req.signal
|
|
165
167
|
};
|
|
166
168
|
}
|
|
167
169
|
};
|
|
@@ -192,7 +194,8 @@ const octetStreamContentTypeHandler = {
|
|
|
192
194
|
isBatchCall: false,
|
|
193
195
|
accept: null,
|
|
194
196
|
type: 'mutation',
|
|
195
|
-
connectionParams: null
|
|
197
|
+
connectionParams: null,
|
|
198
|
+
signal: req.signal
|
|
196
199
|
};
|
|
197
200
|
}
|
|
198
201
|
};
|
|
@@ -126,7 +126,8 @@ const jsonContentTypeHandler = {
|
|
|
126
126
|
accept: req.headers.get('trpc-accept'),
|
|
127
127
|
calls,
|
|
128
128
|
type,
|
|
129
|
-
connectionParams: connectionParamsStr === null ? null : parseConnectionParamsFromString(connectionParamsStr)
|
|
129
|
+
connectionParams: connectionParamsStr === null ? null : parseConnectionParamsFromString(connectionParamsStr),
|
|
130
|
+
signal: req.signal
|
|
130
131
|
};
|
|
131
132
|
return info;
|
|
132
133
|
}
|
|
@@ -159,7 +160,8 @@ const formDataContentTypeHandler = {
|
|
|
159
160
|
],
|
|
160
161
|
isBatchCall: false,
|
|
161
162
|
type: 'mutation',
|
|
162
|
-
connectionParams: null
|
|
163
|
+
connectionParams: null,
|
|
164
|
+
signal: req.signal
|
|
163
165
|
};
|
|
164
166
|
}
|
|
165
167
|
};
|
|
@@ -190,7 +192,8 @@ const octetStreamContentTypeHandler = {
|
|
|
190
192
|
isBatchCall: false,
|
|
191
193
|
accept: null,
|
|
192
194
|
type: 'mutation',
|
|
193
|
-
connectionParams: null
|
|
195
|
+
connectionParams: null,
|
|
196
|
+
signal: req.signal
|
|
194
197
|
};
|
|
195
198
|
}
|
|
196
199
|
};
|
|
@@ -83,6 +83,11 @@ export interface TRPCRequestInfo {
|
|
|
83
83
|
* Connection params when using `httpSubscriptionLink` or `createWSClient`
|
|
84
84
|
*/
|
|
85
85
|
connectionParams: Dict<string> | null;
|
|
86
|
+
/**
|
|
87
|
+
* Signal when the request is aborted
|
|
88
|
+
* Can be used to abort async operations during the request, e.g. `fetch()`-requests
|
|
89
|
+
*/
|
|
90
|
+
signal: AbortSignal;
|
|
86
91
|
}
|
|
87
92
|
/**
|
|
88
93
|
* Inner createContext function for `resolveResponse` used to forward `TRPCRequestInfo` to `createContext`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,SAAS,IAAI,CAAC,IAAI,EAAE;IAC7D,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IACzD,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC;;;QAGI;IACJ,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B,KAAK,YAAY,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,CACzE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7C;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEnD,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACtC;;OAEG;IACH,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,KAAK,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,SAAS,IAAI,CAAC,IAAI,EAAE;IAC7D,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IACzD,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC;;;QAGI;IACJ,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;IAClC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B,KAAK,YAAY,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,CACzE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7C;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEnD,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACtC;;OAEG;IACH,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,kCAAkC,CAAC,OAAO,SAAS,SAAS,IACtE,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAE5E,UAAU,uBAAuB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,CACnE,SAAQ,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxD,GAAG,EAAE,QAAQ,CAAC;CACf;AACD;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,IAAI,CAClE,IAAI,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAC7C,IAAI,CAAC;AAEV;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ;IACrE,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT;;WAEG;QACH,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -56,9 +56,10 @@ type ChunkData = PromiseChunk | IterableChunk;
|
|
|
56
56
|
export declare function isPromise(value: unknown): value is Promise<unknown>;
|
|
57
57
|
type Serialize = (value: any) => any;
|
|
58
58
|
type Deserialize = (value: any) => any;
|
|
59
|
+
type PathArray = readonly (string | number)[];
|
|
59
60
|
export type ProducerOnError = (opts: {
|
|
60
61
|
error: unknown;
|
|
61
|
-
path:
|
|
62
|
+
path: PathArray;
|
|
62
63
|
}) => void;
|
|
63
64
|
export interface ProducerOptions {
|
|
64
65
|
serialize?: Serialize;
|
|
@@ -66,7 +67,7 @@ export interface ProducerOptions {
|
|
|
66
67
|
onError?: ProducerOnError;
|
|
67
68
|
formatError?: (opts: {
|
|
68
69
|
error: unknown;
|
|
69
|
-
path:
|
|
70
|
+
path: PathArray;
|
|
70
71
|
}) => unknown;
|
|
71
72
|
maxDepth?: number;
|
|
72
73
|
}
|
|
@@ -92,8 +93,12 @@ export declare function jsonlStreamConsumer<THead>(opts: {
|
|
|
92
93
|
formatError?: (opts: {
|
|
93
94
|
error: unknown;
|
|
94
95
|
}) => Error;
|
|
96
|
+
abortController: AbortController | null;
|
|
95
97
|
}): Promise<readonly [Awaited<THead>, {
|
|
96
|
-
readonly controllers: Map<ChunkIndex,
|
|
98
|
+
readonly controllers: Map<ChunkIndex, {
|
|
99
|
+
controller: ReadableStreamDefaultController<ChunkData | StreamInterruptedError>;
|
|
100
|
+
returned: boolean;
|
|
101
|
+
}>;
|
|
97
102
|
}]>;
|
|
98
103
|
export {};
|
|
99
104
|
//# sourceMappingURL=jsonl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/stream/jsonl.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CACA,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,yBAAyB,CAAC;CAC9B,CAAC;AAGF,QAAA,MAAM,wBAAwB,IAAI,CAAC;AACnC,KAAK,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AAChE,QAAA,MAAM,+BAA+B,IAAI,CAAC;AAC1C,KAAK,+BAA+B,GAAG,OAAO,+BAA+B,CAAC;AAE9E,QAAA,MAAM,wBAAwB,IAAI,CAAC;AACnC,KAAK,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AAChE,QAAA,MAAM,uBAAuB,IAAI,CAAC;AAClC,KAAK,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAE9D,QAAA,MAAM,0BAA0B,IAAI,CAAC;AACrC,KAAK,0BAA0B,GAAG,OAAO,0BAA0B,CAAC;AACpE,QAAA,MAAM,2BAA2B,IAAI,CAAC;AACtC,KAAK,2BAA2B,GAAG,OAAO,2BAA2B,CAAC;AACtE,QAAA,MAAM,2BAA2B,IAAI,CAAC;AACtC,KAAK,2BAA2B,GAAG,OAAO,2BAA2B,CAAC;AAEtE,KAAK,kBAAkB,GAEnB,IAAI,GAEJ,MAAM,GAEN,MAAM,CAAC;AAEX,KAAK,UAAU,GAAG,MAAM,GAAG;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,CAAC;AAClD,KAAK,cAAc,GACf,wBAAwB,GACxB,+BAA+B,CAAC;AACpC,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,UAAU;CACpB,CAAC;AACF,KAAK,eAAe,GAAG;IAErB;QAAC,OAAO;KAAC;IAET,GAAG,eAAe,EAAE;CACrB,CAAC;AAGF,KAAK,YAAY,GACb;IACE,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,eAAe;CACvB,GACD,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9E,KAAK,aAAa,GACd,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,0BAA0B,CAAC,GAC5D;IACE,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,eAAe;CACvB,GACD;IACE,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,OAAO;CACf,CAAC;AACN,KAAK,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;AAE9C,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAMnE;AAED,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AACrC,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/stream/jsonl.ts"],"names":[],"mappings":"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"}
|
|
@@ -332,14 +332,24 @@ function createConsumerStream(from) {
|
|
|
332
332
|
let headDeferred = createDeferred.createDeferred();
|
|
333
333
|
const chunkDeferred = new Map();
|
|
334
334
|
const controllers = new Map();
|
|
335
|
+
const maybeAbort = ()=>{
|
|
336
|
+
if (chunkDeferred.size === 0 && Array.from(controllers.values()).every((it)=>it.returned)) {
|
|
337
|
+
// nothing is listening to the stream anymore
|
|
338
|
+
opts.abortController?.abort();
|
|
339
|
+
}
|
|
340
|
+
};
|
|
335
341
|
function hydrateChunkDefinition(value) {
|
|
336
342
|
const [_path, type, chunkId] = value;
|
|
337
343
|
const { readable , controller } = createReadableStream.createReadableStream();
|
|
338
|
-
|
|
344
|
+
const wrapper = {
|
|
345
|
+
controller,
|
|
346
|
+
returned: false
|
|
347
|
+
};
|
|
348
|
+
controllers.set(chunkId, wrapper);
|
|
339
349
|
// resolve chunk deferred if it exists
|
|
340
350
|
const deferred = chunkDeferred.get(chunkId);
|
|
341
351
|
if (deferred) {
|
|
342
|
-
deferred.resolve(
|
|
352
|
+
deferred.resolve(wrapper);
|
|
343
353
|
chunkDeferred.delete(chunkId);
|
|
344
354
|
}
|
|
345
355
|
switch(type){
|
|
@@ -372,37 +382,61 @@ function createConsumerStream(from) {
|
|
|
372
382
|
}).catch(reject).finally(()=>{
|
|
373
383
|
// reader.releaseLock();
|
|
374
384
|
controllers.delete(chunkId);
|
|
385
|
+
maybeAbort();
|
|
375
386
|
});
|
|
376
387
|
});
|
|
377
388
|
}
|
|
378
389
|
case CHUNK_VALUE_TYPE_ASYNC_ITERABLE:
|
|
379
390
|
{
|
|
380
391
|
return {
|
|
381
|
-
[Symbol.asyncIterator]:
|
|
392
|
+
[Symbol.asyncIterator]: ()=>{
|
|
382
393
|
const reader = readable.getReader();
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
}
|
|
391
|
-
const [_chunkId, status, data] = value;
|
|
392
|
-
switch(status){
|
|
393
|
-
case ASYNC_ITERABLE_STATUS_VALUE:
|
|
394
|
-
yield hydrate(data);
|
|
395
|
-
break;
|
|
396
|
-
case ASYNC_ITERABLE_STATUS_DONE:
|
|
397
|
-
controllers.delete(chunkId);
|
|
398
|
-
return;
|
|
399
|
-
case ASYNC_ITERABLE_STATUS_ERROR:
|
|
394
|
+
const iterator = {
|
|
395
|
+
next: async ()=>{
|
|
396
|
+
const { done , value } = await reader.read();
|
|
397
|
+
if (value instanceof StreamInterruptedError) {
|
|
398
|
+
throw value;
|
|
399
|
+
}
|
|
400
|
+
if (done) {
|
|
400
401
|
controllers.delete(chunkId);
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
402
|
+
maybeAbort();
|
|
403
|
+
return {
|
|
404
|
+
done: true,
|
|
405
|
+
value: undefined
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
const [_chunkId, status, data] = value;
|
|
409
|
+
switch(status){
|
|
410
|
+
case ASYNC_ITERABLE_STATUS_VALUE:
|
|
411
|
+
return {
|
|
412
|
+
done: false,
|
|
413
|
+
value: hydrate(data)
|
|
414
|
+
};
|
|
415
|
+
case ASYNC_ITERABLE_STATUS_DONE:
|
|
416
|
+
controllers.delete(chunkId);
|
|
417
|
+
maybeAbort();
|
|
418
|
+
return {
|
|
419
|
+
done: true,
|
|
420
|
+
value: undefined
|
|
421
|
+
};
|
|
422
|
+
case ASYNC_ITERABLE_STATUS_ERROR:
|
|
423
|
+
controllers.delete(chunkId);
|
|
424
|
+
maybeAbort();
|
|
425
|
+
throw opts.formatError?.({
|
|
426
|
+
error: data
|
|
427
|
+
}) ?? new AsyncError(data);
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
return: async ()=>{
|
|
431
|
+
wrapper.returned = true;
|
|
432
|
+
maybeAbort();
|
|
433
|
+
return {
|
|
434
|
+
done: true,
|
|
435
|
+
value: undefined
|
|
436
|
+
};
|
|
404
437
|
}
|
|
405
|
-
}
|
|
438
|
+
};
|
|
439
|
+
return iterator;
|
|
406
440
|
}
|
|
407
441
|
};
|
|
408
442
|
}
|
|
@@ -411,12 +445,12 @@ function createConsumerStream(from) {
|
|
|
411
445
|
function hydrate(value) {
|
|
412
446
|
const [[data], ...asyncProps] = value;
|
|
413
447
|
for (const value1 of asyncProps){
|
|
448
|
+
const [key] = value1;
|
|
414
449
|
const hydrated = hydrateChunkDefinition(value1);
|
|
415
|
-
|
|
416
|
-
if (path === null) {
|
|
450
|
+
if (key === null) {
|
|
417
451
|
return hydrated;
|
|
418
452
|
}
|
|
419
|
-
data[
|
|
453
|
+
data[key] = hydrated;
|
|
420
454
|
}
|
|
421
455
|
return data;
|
|
422
456
|
}
|
|
@@ -427,7 +461,7 @@ function createConsumerStream(from) {
|
|
|
427
461
|
deferred.reject(error);
|
|
428
462
|
}
|
|
429
463
|
chunkDeferred.clear();
|
|
430
|
-
for (const controller of controllers.values()){
|
|
464
|
+
for (const { controller } of controllers.values()){
|
|
431
465
|
controller.enqueue(error);
|
|
432
466
|
controller.close();
|
|
433
467
|
}
|
|
@@ -447,16 +481,16 @@ function createConsumerStream(from) {
|
|
|
447
481
|
}
|
|
448
482
|
const chunk = chunkOrHead;
|
|
449
483
|
const [idx] = chunk;
|
|
450
|
-
let
|
|
451
|
-
if (!
|
|
484
|
+
let wrapper = controllers.get(idx);
|
|
485
|
+
if (!wrapper) {
|
|
452
486
|
let deferred = chunkDeferred.get(idx);
|
|
453
487
|
if (!deferred) {
|
|
454
488
|
deferred = createDeferred.createDeferred();
|
|
455
489
|
chunkDeferred.set(idx, deferred);
|
|
456
490
|
}
|
|
457
|
-
|
|
491
|
+
wrapper = await deferred.promise;
|
|
458
492
|
}
|
|
459
|
-
controller.enqueue(chunk);
|
|
493
|
+
wrapper.controller.enqueue(chunk);
|
|
460
494
|
},
|
|
461
495
|
close: closeOrAbort,
|
|
462
496
|
abort: closeOrAbort
|
|
@@ -330,14 +330,24 @@ function createConsumerStream(from) {
|
|
|
330
330
|
let headDeferred = createDeferred();
|
|
331
331
|
const chunkDeferred = new Map();
|
|
332
332
|
const controllers = new Map();
|
|
333
|
+
const maybeAbort = ()=>{
|
|
334
|
+
if (chunkDeferred.size === 0 && Array.from(controllers.values()).every((it)=>it.returned)) {
|
|
335
|
+
// nothing is listening to the stream anymore
|
|
336
|
+
opts.abortController?.abort();
|
|
337
|
+
}
|
|
338
|
+
};
|
|
333
339
|
function hydrateChunkDefinition(value) {
|
|
334
340
|
const [_path, type, chunkId] = value;
|
|
335
341
|
const { readable , controller } = createReadableStream();
|
|
336
|
-
|
|
342
|
+
const wrapper = {
|
|
343
|
+
controller,
|
|
344
|
+
returned: false
|
|
345
|
+
};
|
|
346
|
+
controllers.set(chunkId, wrapper);
|
|
337
347
|
// resolve chunk deferred if it exists
|
|
338
348
|
const deferred = chunkDeferred.get(chunkId);
|
|
339
349
|
if (deferred) {
|
|
340
|
-
deferred.resolve(
|
|
350
|
+
deferred.resolve(wrapper);
|
|
341
351
|
chunkDeferred.delete(chunkId);
|
|
342
352
|
}
|
|
343
353
|
switch(type){
|
|
@@ -370,37 +380,61 @@ function createConsumerStream(from) {
|
|
|
370
380
|
}).catch(reject).finally(()=>{
|
|
371
381
|
// reader.releaseLock();
|
|
372
382
|
controllers.delete(chunkId);
|
|
383
|
+
maybeAbort();
|
|
373
384
|
});
|
|
374
385
|
});
|
|
375
386
|
}
|
|
376
387
|
case CHUNK_VALUE_TYPE_ASYNC_ITERABLE:
|
|
377
388
|
{
|
|
378
389
|
return {
|
|
379
|
-
[Symbol.asyncIterator]:
|
|
390
|
+
[Symbol.asyncIterator]: ()=>{
|
|
380
391
|
const reader = readable.getReader();
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
}
|
|
389
|
-
const [_chunkId, status, data] = value;
|
|
390
|
-
switch(status){
|
|
391
|
-
case ASYNC_ITERABLE_STATUS_VALUE:
|
|
392
|
-
yield hydrate(data);
|
|
393
|
-
break;
|
|
394
|
-
case ASYNC_ITERABLE_STATUS_DONE:
|
|
395
|
-
controllers.delete(chunkId);
|
|
396
|
-
return;
|
|
397
|
-
case ASYNC_ITERABLE_STATUS_ERROR:
|
|
392
|
+
const iterator = {
|
|
393
|
+
next: async ()=>{
|
|
394
|
+
const { done , value } = await reader.read();
|
|
395
|
+
if (value instanceof StreamInterruptedError) {
|
|
396
|
+
throw value;
|
|
397
|
+
}
|
|
398
|
+
if (done) {
|
|
398
399
|
controllers.delete(chunkId);
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
400
|
+
maybeAbort();
|
|
401
|
+
return {
|
|
402
|
+
done: true,
|
|
403
|
+
value: undefined
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
const [_chunkId, status, data] = value;
|
|
407
|
+
switch(status){
|
|
408
|
+
case ASYNC_ITERABLE_STATUS_VALUE:
|
|
409
|
+
return {
|
|
410
|
+
done: false,
|
|
411
|
+
value: hydrate(data)
|
|
412
|
+
};
|
|
413
|
+
case ASYNC_ITERABLE_STATUS_DONE:
|
|
414
|
+
controllers.delete(chunkId);
|
|
415
|
+
maybeAbort();
|
|
416
|
+
return {
|
|
417
|
+
done: true,
|
|
418
|
+
value: undefined
|
|
419
|
+
};
|
|
420
|
+
case ASYNC_ITERABLE_STATUS_ERROR:
|
|
421
|
+
controllers.delete(chunkId);
|
|
422
|
+
maybeAbort();
|
|
423
|
+
throw opts.formatError?.({
|
|
424
|
+
error: data
|
|
425
|
+
}) ?? new AsyncError(data);
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
return: async ()=>{
|
|
429
|
+
wrapper.returned = true;
|
|
430
|
+
maybeAbort();
|
|
431
|
+
return {
|
|
432
|
+
done: true,
|
|
433
|
+
value: undefined
|
|
434
|
+
};
|
|
402
435
|
}
|
|
403
|
-
}
|
|
436
|
+
};
|
|
437
|
+
return iterator;
|
|
404
438
|
}
|
|
405
439
|
};
|
|
406
440
|
}
|
|
@@ -409,12 +443,12 @@ function createConsumerStream(from) {
|
|
|
409
443
|
function hydrate(value) {
|
|
410
444
|
const [[data], ...asyncProps] = value;
|
|
411
445
|
for (const value1 of asyncProps){
|
|
446
|
+
const [key] = value1;
|
|
412
447
|
const hydrated = hydrateChunkDefinition(value1);
|
|
413
|
-
|
|
414
|
-
if (path === null) {
|
|
448
|
+
if (key === null) {
|
|
415
449
|
return hydrated;
|
|
416
450
|
}
|
|
417
|
-
data[
|
|
451
|
+
data[key] = hydrated;
|
|
418
452
|
}
|
|
419
453
|
return data;
|
|
420
454
|
}
|
|
@@ -425,7 +459,7 @@ function createConsumerStream(from) {
|
|
|
425
459
|
deferred.reject(error);
|
|
426
460
|
}
|
|
427
461
|
chunkDeferred.clear();
|
|
428
|
-
for (const controller of controllers.values()){
|
|
462
|
+
for (const { controller } of controllers.values()){
|
|
429
463
|
controller.enqueue(error);
|
|
430
464
|
controller.close();
|
|
431
465
|
}
|
|
@@ -445,16 +479,16 @@ function createConsumerStream(from) {
|
|
|
445
479
|
}
|
|
446
480
|
const chunk = chunkOrHead;
|
|
447
481
|
const [idx] = chunk;
|
|
448
|
-
let
|
|
449
|
-
if (!
|
|
482
|
+
let wrapper = controllers.get(idx);
|
|
483
|
+
if (!wrapper) {
|
|
450
484
|
let deferred = chunkDeferred.get(idx);
|
|
451
485
|
if (!deferred) {
|
|
452
486
|
deferred = createDeferred();
|
|
453
487
|
chunkDeferred.set(idx, deferred);
|
|
454
488
|
}
|
|
455
|
-
|
|
489
|
+
wrapper = await deferred.promise;
|
|
456
490
|
}
|
|
457
|
-
controller.enqueue(chunk);
|
|
491
|
+
wrapper.controller.enqueue(chunk);
|
|
458
492
|
},
|
|
459
493
|
close: closeOrAbort,
|
|
460
494
|
abort: closeOrAbort
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../../../src/unstable-core-do-not-import/stream/utils/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;;;;
|
|
1
|
+
{"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../../../src/unstable-core-do-not-import/stream/utils/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;;;;EAuCvE"}
|
|
@@ -34,6 +34,7 @@ export * from './unstable-core-do-not-import/router';
|
|
|
34
34
|
export * from './unstable-core-do-not-import/rpc';
|
|
35
35
|
export * from './unstable-core-do-not-import/stream/jsonl';
|
|
36
36
|
export * from './unstable-core-do-not-import/stream/sse';
|
|
37
|
+
export * from './unstable-core-do-not-import/stream/utils/createDeferred';
|
|
37
38
|
export * from './unstable-core-do-not-import/transformer';
|
|
38
39
|
export * from './unstable-core-do-not-import/types';
|
|
39
40
|
export * from './unstable-core-do-not-import/utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unstable-core-do-not-import.d.ts","sourceRoot":"","sources":["../src/unstable-core-do-not-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC;AACnE,cAAc,mDAAmD,CAAC;AAClE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC;AACxE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,0DAA0D,CAAC;AACzE,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"unstable-core-do-not-import.d.ts","sourceRoot":"","sources":["../src/unstable-core-do-not-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC;AACnE,cAAc,mDAAmD,CAAC;AAClE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC;AACxE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,0DAA0D,CAAC;AACzE,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC"}
|
|
@@ -23,6 +23,7 @@ var codes = require('./unstable-core-do-not-import/rpc/codes.js');
|
|
|
23
23
|
var parseTRPCMessage = require('./unstable-core-do-not-import/rpc/parseTRPCMessage.js');
|
|
24
24
|
var jsonl = require('./unstable-core-do-not-import/stream/jsonl.js');
|
|
25
25
|
var sse = require('./unstable-core-do-not-import/stream/sse.js');
|
|
26
|
+
var createDeferred = require('./unstable-core-do-not-import/stream/utils/createDeferred.js');
|
|
26
27
|
var transformer = require('./unstable-core-do-not-import/transformer.js');
|
|
27
28
|
var types = require('./unstable-core-do-not-import/types.js');
|
|
28
29
|
var utils = require('./unstable-core-do-not-import/utils.js');
|
|
@@ -71,6 +72,8 @@ exports.sse = sse.sse;
|
|
|
71
72
|
exports.sseHeaders = sse.sseHeaders;
|
|
72
73
|
exports.sseStreamConsumer = sse.sseStreamConsumer;
|
|
73
74
|
exports.sseStreamProducer = sse.sseStreamProducer;
|
|
75
|
+
exports.createDeferred = createDeferred.createDeferred;
|
|
76
|
+
exports.createTimeoutPromise = createDeferred.createTimeoutPromise;
|
|
74
77
|
exports.defaultTransformer = transformer.defaultTransformer;
|
|
75
78
|
exports.getDataTransformer = transformer.getDataTransformer;
|
|
76
79
|
exports.transformResult = transformer.transformResult;
|
|
@@ -21,6 +21,7 @@ export { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER } from './unstable-
|
|
|
21
21
|
export { parseTRPCMessage } from './unstable-core-do-not-import/rpc/parseTRPCMessage.mjs';
|
|
22
22
|
export { isPromise, jsonlStreamConsumer, jsonlStreamProducer } from './unstable-core-do-not-import/stream/jsonl.mjs';
|
|
23
23
|
export { isSSEMessageEnvelope, sse, sseHeaders, sseStreamConsumer, sseStreamProducer } from './unstable-core-do-not-import/stream/sse.mjs';
|
|
24
|
+
export { createDeferred, createTimeoutPromise } from './unstable-core-do-not-import/stream/utils/createDeferred.mjs';
|
|
24
25
|
export { defaultTransformer, getDataTransformer, transformResult, transformTRPCResponse } from './unstable-core-do-not-import/transformer.mjs';
|
|
25
26
|
export { ERROR_SYMBOL } from './unstable-core-do-not-import/types.mjs';
|
|
26
27
|
export { isAsyncIterable, isFunction, isObject, mergeWithoutOverrides, omitPrototype, run, unsetMarker } from './unstable-core-do-not-import/utils.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/server",
|
|
3
|
-
"version": "11.0.0-rc.
|
|
3
|
+
"version": "11.0.0-rc.455+244538dd3",
|
|
4
4
|
"description": "The tRPC server library",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -149,5 +149,5 @@
|
|
|
149
149
|
"funding": [
|
|
150
150
|
"https://trpc.io/sponsor"
|
|
151
151
|
],
|
|
152
|
-
"gitHead": "
|
|
152
|
+
"gitHead": "244538dd3d42c0df05c7a491def21562e3cce253"
|
|
153
153
|
}
|
|
@@ -71,7 +71,9 @@ export async function nodeHTTPRequestHandler<
|
|
|
71
71
|
// console.error('reader.cancel() error', err);
|
|
72
72
|
});
|
|
73
73
|
};
|
|
74
|
-
req.signal.addEventListener('abort', onAbort
|
|
74
|
+
req.signal.addEventListener('abort', onAbort, {
|
|
75
|
+
once: true,
|
|
76
|
+
});
|
|
75
77
|
|
|
76
78
|
while (true) {
|
|
77
79
|
const { done, value } = await reader.read();
|
package/src/adapters/ws.ts
CHANGED
|
@@ -97,6 +97,7 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
97
97
|
|
|
98
98
|
return async (client: ws.WebSocket, req: IncomingMessage) => {
|
|
99
99
|
const clientSubscriptions = new Map<number | string, AbortController>();
|
|
100
|
+
const abortController = new AbortController();
|
|
100
101
|
|
|
101
102
|
function respond(untransformedJSON: TRPCResponseMessage) {
|
|
102
103
|
client.send(
|
|
@@ -119,6 +120,7 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
119
120
|
isBatchCall: false,
|
|
120
121
|
accept: null,
|
|
121
122
|
type: 'unknown',
|
|
123
|
+
signal: abortController.signal,
|
|
122
124
|
},
|
|
123
125
|
});
|
|
124
126
|
|
|
@@ -410,6 +412,7 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
410
412
|
sub.abort();
|
|
411
413
|
}
|
|
412
414
|
clientSubscriptions.clear();
|
|
415
|
+
abortController.abort();
|
|
413
416
|
});
|
|
414
417
|
|
|
415
418
|
if (ctxPromise !== unsetContextSymbol) {
|
|
@@ -90,19 +90,11 @@ function pipeReducer(prev: any, fn: UnaryFunction<any, any>) {
|
|
|
90
90
|
return fn(prev);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
class ObservableAbortError extends Error {
|
|
94
|
-
constructor(message: string) {
|
|
95
|
-
super(message);
|
|
96
|
-
this.name = 'ObservableAbortError';
|
|
97
|
-
Object.setPrototypeOf(this, ObservableAbortError.prototype);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
93
|
/** @internal */
|
|
102
94
|
export function observableToPromise<TValue>(
|
|
103
95
|
observable: Observable<TValue, unknown>,
|
|
104
96
|
) {
|
|
105
|
-
|
|
97
|
+
const ac = new AbortController();
|
|
106
98
|
const promise = new Promise<TValue>((resolve, reject) => {
|
|
107
99
|
let isDone = false;
|
|
108
100
|
function onDone() {
|
|
@@ -110,9 +102,11 @@ export function observableToPromise<TValue>(
|
|
|
110
102
|
return;
|
|
111
103
|
}
|
|
112
104
|
isDone = true;
|
|
113
|
-
reject(new ObservableAbortError('This operation was aborted.'));
|
|
114
105
|
obs$.unsubscribe();
|
|
115
106
|
}
|
|
107
|
+
ac.signal.addEventListener('abort', () => {
|
|
108
|
+
reject(ac.signal.reason);
|
|
109
|
+
});
|
|
116
110
|
const obs$ = observable.subscribe({
|
|
117
111
|
next(data) {
|
|
118
112
|
isDone = true;
|
|
@@ -120,22 +114,15 @@ export function observableToPromise<TValue>(
|
|
|
120
114
|
onDone();
|
|
121
115
|
},
|
|
122
116
|
error(data) {
|
|
123
|
-
isDone = true;
|
|
124
117
|
reject(data);
|
|
125
|
-
onDone();
|
|
126
118
|
},
|
|
127
119
|
complete() {
|
|
128
|
-
|
|
120
|
+
ac.abort();
|
|
129
121
|
onDone();
|
|
130
122
|
},
|
|
131
123
|
});
|
|
132
|
-
abort = onDone;
|
|
133
124
|
});
|
|
134
|
-
return
|
|
135
|
-
promise,
|
|
136
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
137
|
-
abort: abort!,
|
|
138
|
-
};
|
|
125
|
+
return promise;
|
|
139
126
|
}
|
|
140
127
|
|
|
141
128
|
/**
|
|
@@ -173,6 +173,7 @@ const jsonContentTypeHandler: ContentTypeHandler = {
|
|
|
173
173
|
connectionParamsStr === null
|
|
174
174
|
? null
|
|
175
175
|
: parseConnectionParamsFromString(connectionParamsStr),
|
|
176
|
+
signal: req.signal,
|
|
176
177
|
};
|
|
177
178
|
return info;
|
|
178
179
|
},
|
|
@@ -208,6 +209,7 @@ const formDataContentTypeHandler: ContentTypeHandler = {
|
|
|
208
209
|
isBatchCall: false,
|
|
209
210
|
type: 'mutation',
|
|
210
211
|
connectionParams: null,
|
|
212
|
+
signal: req.signal,
|
|
211
213
|
};
|
|
212
214
|
},
|
|
213
215
|
};
|
|
@@ -243,6 +245,7 @@ const octetStreamContentTypeHandler: ContentTypeHandler = {
|
|
|
243
245
|
accept: null,
|
|
244
246
|
type: 'mutation',
|
|
245
247
|
connectionParams: null,
|
|
248
|
+
signal: req.signal,
|
|
246
249
|
};
|
|
247
250
|
},
|
|
248
251
|
};
|
|
@@ -99,6 +99,11 @@ export interface TRPCRequestInfo {
|
|
|
99
99
|
* Connection params when using `httpSubscriptionLink` or `createWSClient`
|
|
100
100
|
*/
|
|
101
101
|
connectionParams: Dict<string> | null;
|
|
102
|
+
/**
|
|
103
|
+
* Signal when the request is aborted
|
|
104
|
+
* Can be used to abort async operations during the request, e.g. `fetch()`-requests
|
|
105
|
+
*/
|
|
106
|
+
signal: AbortSignal;
|
|
102
107
|
}
|
|
103
108
|
|
|
104
109
|
/**
|