@trpc/server 11.0.0-rc.452 → 11.0.0-rc.456
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 +107 -106
- 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/error/TRPCError.d.ts +1 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +1 -1
- 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/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +5 -2
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +5 -2
- 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/rpc/codes.d.ts +4 -1
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/rpc/codes.js +4 -1
- package/dist/unstable-core-do-not-import/rpc/codes.mjs +4 -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/getHTTPStatusCode.ts +4 -1
- package/src/unstable-core-do-not-import/http/types.ts +5 -0
- package/src/unstable-core-do-not-import/rpc/codes.ts +6 -3
- 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
|
@@ -63,15 +63,8 @@
|
|
|
63
63
|
function pipeReducer(prev, fn) {
|
|
64
64
|
return fn(prev);
|
|
65
65
|
}
|
|
66
|
-
class ObservableAbortError extends Error {
|
|
67
|
-
constructor(message){
|
|
68
|
-
super(message);
|
|
69
|
-
this.name = 'ObservableAbortError';
|
|
70
|
-
Object.setPrototypeOf(this, ObservableAbortError.prototype);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
66
|
/** @internal */ function observableToPromise(observable) {
|
|
74
|
-
|
|
67
|
+
const ac = new AbortController();
|
|
75
68
|
const promise = new Promise((resolve, reject)=>{
|
|
76
69
|
let isDone = false;
|
|
77
70
|
function onDone() {
|
|
@@ -79,9 +72,11 @@ class ObservableAbortError extends Error {
|
|
|
79
72
|
return;
|
|
80
73
|
}
|
|
81
74
|
isDone = true;
|
|
82
|
-
reject(new ObservableAbortError('This operation was aborted.'));
|
|
83
75
|
obs$.unsubscribe();
|
|
84
76
|
}
|
|
77
|
+
ac.signal.addEventListener('abort', ()=>{
|
|
78
|
+
reject(ac.signal.reason);
|
|
79
|
+
});
|
|
85
80
|
const obs$ = observable.subscribe({
|
|
86
81
|
next (data) {
|
|
87
82
|
isDone = true;
|
|
@@ -89,22 +84,15 @@ class ObservableAbortError extends Error {
|
|
|
89
84
|
onDone();
|
|
90
85
|
},
|
|
91
86
|
error (data) {
|
|
92
|
-
isDone = true;
|
|
93
87
|
reject(data);
|
|
94
|
-
onDone();
|
|
95
88
|
},
|
|
96
89
|
complete () {
|
|
97
|
-
|
|
90
|
+
ac.abort();
|
|
98
91
|
onDone();
|
|
99
92
|
}
|
|
100
93
|
});
|
|
101
|
-
abort = onDone;
|
|
102
94
|
});
|
|
103
|
-
return
|
|
104
|
-
promise,
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
106
|
-
abort: abort
|
|
107
|
-
};
|
|
95
|
+
return promise;
|
|
108
96
|
}
|
|
109
97
|
/**
|
|
110
98
|
* @internal
|
|
@@ -3,7 +3,7 @@ export declare function getCauseFromUnknown(cause: unknown): Error | undefined;
|
|
|
3
3
|
export declare function getTRPCErrorFromUnknown(cause: unknown): TRPCError;
|
|
4
4
|
export declare class TRPCError extends Error {
|
|
5
5
|
readonly cause?: Error;
|
|
6
|
-
readonly code: "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "BAD_REQUEST" | "NOT_IMPLEMENTED" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "
|
|
6
|
+
readonly code: "INTERNAL_SERVER_ERROR" | "PARSE_ERROR" | "BAD_REQUEST" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "CLIENT_CLOSED_REQUEST";
|
|
7
7
|
constructor(opts: {
|
|
8
8
|
message?: string;
|
|
9
9
|
code: TRPC_ERROR_CODE_KEY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TRPCError.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/error/TRPCError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAyBrE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAoBjE;AAED,qBAAa,SAAU,SAAQ,KAAK;IAGlC,SAAyB,KAAK,CAAC,EAAE,KAAK,CAAC;IACvC,SAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"TRPCError.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/error/TRPCError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAyBrE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAoBjE;AAED,qBAAa,SAAU,SAAQ,KAAK;IAGlC,SAAyB,KAAK,CAAC,EAAE,KAAK,CAAC;IACvC,SAAgB,IAAI,4XAAC;gBAET,IAAI,EAAE;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CAgBF"}
|
|
@@ -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
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHTTPStatusCode.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/getHTTPStatusCode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"getHTTPStatusCode.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/getHTTPStatusCode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,QAAQ,CAAC;AAiCpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,GAAG,MAAM,CAsB7E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,UAE1D"}
|
|
@@ -7,8 +7,8 @@ const JSONRPC2_TO_HTTP_CODE = {
|
|
|
7
7
|
PARSE_ERROR: 400,
|
|
8
8
|
BAD_REQUEST: 400,
|
|
9
9
|
UNAUTHORIZED: 401,
|
|
10
|
-
NOT_FOUND: 404,
|
|
11
10
|
FORBIDDEN: 403,
|
|
11
|
+
NOT_FOUND: 404,
|
|
12
12
|
METHOD_NOT_SUPPORTED: 405,
|
|
13
13
|
TIMEOUT: 408,
|
|
14
14
|
CONFLICT: 409,
|
|
@@ -19,7 +19,10 @@ const JSONRPC2_TO_HTTP_CODE = {
|
|
|
19
19
|
TOO_MANY_REQUESTS: 429,
|
|
20
20
|
CLIENT_CLOSED_REQUEST: 499,
|
|
21
21
|
INTERNAL_SERVER_ERROR: 500,
|
|
22
|
-
NOT_IMPLEMENTED: 501
|
|
22
|
+
NOT_IMPLEMENTED: 501,
|
|
23
|
+
BAD_GATEWAY: 502,
|
|
24
|
+
SERVICE_UNAVAILABLE: 503,
|
|
25
|
+
GATEWAY_TIMEOUT: 504
|
|
23
26
|
};
|
|
24
27
|
function getStatusCodeFromKey(code) {
|
|
25
28
|
return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
|
|
@@ -5,8 +5,8 @@ const JSONRPC2_TO_HTTP_CODE = {
|
|
|
5
5
|
PARSE_ERROR: 400,
|
|
6
6
|
BAD_REQUEST: 400,
|
|
7
7
|
UNAUTHORIZED: 401,
|
|
8
|
-
NOT_FOUND: 404,
|
|
9
8
|
FORBIDDEN: 403,
|
|
9
|
+
NOT_FOUND: 404,
|
|
10
10
|
METHOD_NOT_SUPPORTED: 405,
|
|
11
11
|
TIMEOUT: 408,
|
|
12
12
|
CONFLICT: 409,
|
|
@@ -17,7 +17,10 @@ const JSONRPC2_TO_HTTP_CODE = {
|
|
|
17
17
|
TOO_MANY_REQUESTS: 429,
|
|
18
18
|
CLIENT_CLOSED_REQUEST: 499,
|
|
19
19
|
INTERNAL_SERVER_ERROR: 500,
|
|
20
|
-
NOT_IMPLEMENTED: 501
|
|
20
|
+
NOT_IMPLEMENTED: 501,
|
|
21
|
+
BAD_GATEWAY: 502,
|
|
22
|
+
SERVICE_UNAVAILABLE: 503,
|
|
23
|
+
GATEWAY_TIMEOUT: 504
|
|
21
24
|
};
|
|
22
25
|
function getStatusCodeFromKey(code) {
|
|
23
26
|
return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
|
|
@@ -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":"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"}
|
|
@@ -17,6 +17,9 @@ export declare const TRPC_ERROR_CODES_BY_KEY: {
|
|
|
17
17
|
readonly BAD_REQUEST: -32600;
|
|
18
18
|
readonly INTERNAL_SERVER_ERROR: -32603;
|
|
19
19
|
readonly NOT_IMPLEMENTED: -32603;
|
|
20
|
+
readonly BAD_GATEWAY: -32603;
|
|
21
|
+
readonly SERVICE_UNAVAILABLE: -32603;
|
|
22
|
+
readonly GATEWAY_TIMEOUT: -32603;
|
|
20
23
|
readonly UNAUTHORIZED: -32001;
|
|
21
24
|
readonly FORBIDDEN: -32003;
|
|
22
25
|
readonly NOT_FOUND: -32004;
|
|
@@ -24,8 +27,8 @@ export declare const TRPC_ERROR_CODES_BY_KEY: {
|
|
|
24
27
|
readonly TIMEOUT: -32008;
|
|
25
28
|
readonly CONFLICT: -32009;
|
|
26
29
|
readonly PRECONDITION_FAILED: -32012;
|
|
27
|
-
readonly UNSUPPORTED_MEDIA_TYPE: -32015;
|
|
28
30
|
readonly PAYLOAD_TOO_LARGE: -32013;
|
|
31
|
+
readonly UNSUPPORTED_MEDIA_TYPE: -32015;
|
|
29
32
|
readonly UNPROCESSABLE_CONTENT: -32022;
|
|
30
33
|
readonly TOO_MANY_REQUESTS: -32029;
|
|
31
34
|
readonly CLIENT_CLOSED_REQUEST: -32099;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/rpc/codes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;;IAEH;;OAEG
|
|
1
|
+
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/rpc/codes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;CAuBK,CAAC;AAEX,KAAK,YAAY,CAAC,MAAM,EAAE,KAAK,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI;KACzE,CAAC,IAAI,MAAM,KAAK,GAAG,MAAM,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACxD,CAAC,MAAM,KAAK,CAAC,CAAC;AAEf,KAAK,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI;KAC3D,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;CAC5D,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,OAAO,uBAAuB,CAiB/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC7E,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,uBAAuB,CAAC"}
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
// Internal JSON-RPC error
|
|
18
18
|
INTERNAL_SERVER_ERROR: -32603,
|
|
19
19
|
NOT_IMPLEMENTED: -32603,
|
|
20
|
+
BAD_GATEWAY: -32603,
|
|
21
|
+
SERVICE_UNAVAILABLE: -32603,
|
|
22
|
+
GATEWAY_TIMEOUT: -32603,
|
|
20
23
|
// Implementation specific errors
|
|
21
24
|
UNAUTHORIZED: -32001,
|
|
22
25
|
FORBIDDEN: -32003,
|
|
@@ -25,8 +28,8 @@
|
|
|
25
28
|
TIMEOUT: -32008,
|
|
26
29
|
CONFLICT: -32009,
|
|
27
30
|
PRECONDITION_FAILED: -32012,
|
|
28
|
-
UNSUPPORTED_MEDIA_TYPE: -32015,
|
|
29
31
|
PAYLOAD_TOO_LARGE: -32013,
|
|
32
|
+
UNSUPPORTED_MEDIA_TYPE: -32015,
|
|
30
33
|
UNPROCESSABLE_CONTENT: -32022,
|
|
31
34
|
TOO_MANY_REQUESTS: -32029,
|
|
32
35
|
CLIENT_CLOSED_REQUEST: -32099
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
// Internal JSON-RPC error
|
|
16
16
|
INTERNAL_SERVER_ERROR: -32603,
|
|
17
17
|
NOT_IMPLEMENTED: -32603,
|
|
18
|
+
BAD_GATEWAY: -32603,
|
|
19
|
+
SERVICE_UNAVAILABLE: -32603,
|
|
20
|
+
GATEWAY_TIMEOUT: -32603,
|
|
18
21
|
// Implementation specific errors
|
|
19
22
|
UNAUTHORIZED: -32001,
|
|
20
23
|
FORBIDDEN: -32003,
|
|
@@ -23,8 +26,8 @@
|
|
|
23
26
|
TIMEOUT: -32008,
|
|
24
27
|
CONFLICT: -32009,
|
|
25
28
|
PRECONDITION_FAILED: -32012,
|
|
26
|
-
UNSUPPORTED_MEDIA_TYPE: -32015,
|
|
27
29
|
PAYLOAD_TOO_LARGE: -32013,
|
|
30
|
+
UNSUPPORTED_MEDIA_TYPE: -32015,
|
|
28
31
|
UNPROCESSABLE_CONTENT: -32022,
|
|
29
32
|
TOO_MANY_REQUESTS: -32029,
|
|
30
33
|
CLIENT_CLOSED_REQUEST: -32099
|
|
@@ -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"}
|