@trpc/client 9.17.1 → 9.18.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/declarations/src/internals/dataLoader.d.ts +3 -1
- package/dist/declarations/src/internals/dataLoader.d.ts.map +1 -1
- package/dist/declarations/src/internals/executeChain.d.ts +1 -2
- package/dist/declarations/src/internals/executeChain.d.ts.map +1 -1
- package/dist/declarations/src/internals/transformRPCResponse.d.ts +1 -9
- package/dist/declarations/src/internals/transformRPCResponse.d.ts.map +1 -1
- package/dist/declarations/src/links/httpBatchLink.d.ts +4 -1
- package/dist/declarations/src/links/httpBatchLink.d.ts.map +1 -1
- package/dist/declarations/src/links/wsLink.d.ts +1 -4
- package/dist/declarations/src/links/wsLink.d.ts.map +1 -1
- package/dist/{httpRequest-b7d20bb5.cjs.dev.js → transformRPCResponse-57e80136.cjs.dev.js} +19 -19
- package/dist/{httpRequest-7a404586.cjs.prod.js → transformRPCResponse-739c13d0.cjs.prod.js} +19 -19
- package/dist/{httpRequest-ec8da4ce.esm.js → transformRPCResponse-f7f8b0e1.esm.js} +19 -19
- package/dist/trpc-client.cjs.dev.js +2 -2
- package/dist/trpc-client.cjs.prod.js +2 -2
- package/dist/trpc-client.esm.js +1 -1
- package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js +24 -12
- package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.prod.js +24 -12
- package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.esm.js +21 -9
- package/links/httpLink/dist/trpc-client-links-httpLink.cjs.dev.js +4 -4
- package/links/httpLink/dist/trpc-client-links-httpLink.cjs.prod.js +4 -4
- package/links/httpLink/dist/trpc-client-links-httpLink.esm.js +1 -1
- package/package.json +4 -4
- package/src/internals/dataLoader.ts +13 -1
- package/src/links/httpBatchLink.ts +24 -8
|
@@ -8,7 +8,9 @@ declare type BatchLoadFn<TKey, TValue> = (keys: TKey[]) => {
|
|
|
8
8
|
* Less configuration, no caching, and allows you to cancel requests
|
|
9
9
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
10
10
|
*/
|
|
11
|
-
export declare function dataLoader<TKey, TValue>(fetchMany: BatchLoadFn<TKey, TValue
|
|
11
|
+
export declare function dataLoader<TKey, TValue>(fetchMany: BatchLoadFn<TKey, TValue>, opts?: {
|
|
12
|
+
maxBatchSize?: number;
|
|
13
|
+
}): {
|
|
12
14
|
load: (key: TKey) => PromiseAndCancel<TValue>;
|
|
13
15
|
};
|
|
14
16
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataLoader.d.ts","sourceRoot":"../../../../src/internals","sources":["dataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAY3D,aAAK,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK;IACjD,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dataLoader.d.ts","sourceRoot":"../../../../src/internals","sources":["dataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAY3D,aAAK,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK;IACjD,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EACrC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EACpC,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;gBA8Bb,IAAI,KAAG,iBAAiB,MAAM,CAAC;EAiDnD"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { AnyRouter } from '@trpc/server';
|
|
2
|
-
import { TRPCResult } from '@trpc/server/rpc';
|
|
3
2
|
import { TRPCClientError } from '../TRPCClientError';
|
|
4
3
|
import { Operation, OperationLink } from '../links/core';
|
|
5
4
|
export declare function executeChain<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown>(opts: {
|
|
6
5
|
links: OperationLink<TRouter, TInput, TOutput>[];
|
|
7
6
|
op: Operation<TInput>;
|
|
8
|
-
}): import("./observable").ObservableSubject<
|
|
7
|
+
}): import("./observable").ObservableSubject<any, TRPCClientError<TRouter>>;
|
|
9
8
|
//# sourceMappingURL=executeChain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeChain.d.ts","sourceRoot":"../../../../src/internals","sources":["executeChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"executeChain.d.ts","sourceRoot":"../../../../src/internals","sources":["executeChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,SAAS,EACT,aAAa,EAGd,MAAM,eAAe,CAAC;AAGvB,wBAAgB,YAAY,CAC1B,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,EACjB,IAAI,EAAE;IACN,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjD,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACvB,2EAgDA"}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { TRPCResponse } from '@trpc/server/rpc';
|
|
2
|
-
import { TRPCClientError } from '../TRPCClientError';
|
|
3
2
|
import { LinkRuntimeOptions } from '../links/core';
|
|
4
3
|
export declare function transformRPCResponse({ envelope, runtime, }: {
|
|
5
4
|
envelope: TRPCResponse;
|
|
6
5
|
runtime: LinkRuntimeOptions;
|
|
7
|
-
}):
|
|
8
|
-
type: "started";
|
|
9
|
-
} | {
|
|
10
|
-
type: "stopped";
|
|
11
|
-
} | TRPCClientError<import("@trpc/server").AnyRouter<any>> | {
|
|
12
|
-
data: any;
|
|
13
|
-
type: "data";
|
|
14
|
-
};
|
|
6
|
+
}): any;
|
|
15
7
|
//# sourceMappingURL=transformRPCResponse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformRPCResponse.d.ts","sourceRoot":"../../../../src/internals","sources":["transformRPCResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transformRPCResponse.d.ts","sourceRoot":"../../../../src/internals","sources":["transformRPCResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,kBAAkB,CAAC;CAC7B,OAcA"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { AnyRouter } from '@trpc/server';
|
|
2
2
|
import { HTTPLinkOptions, TRPCLink } from './core';
|
|
3
|
-
export
|
|
3
|
+
export interface HttpBatchLinkOptions extends HTTPLinkOptions {
|
|
4
|
+
maxBatchSize?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function httpBatchLink<TRouter extends AnyRouter>(opts: HttpBatchLinkOptions): TRPCLink<TRouter>;
|
|
4
7
|
//# sourceMappingURL=httpBatchLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpBatchLink.d.ts","sourceRoot":"../../../../src/links","sources":["httpBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"httpBatchLink.d.ts","sourceRoot":"../../../../src/links","sources":["httpBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAOxD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAS,SAAS,EACrD,IAAI,EAAE,oBAAoB,GACzB,QAAQ,CAAC,OAAO,CAAC,CAqEnB"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { AnyRouter, ProcedureType } from '@trpc/server';
|
|
2
|
-
import { TRPCResult } from '@trpc/server/rpc';
|
|
3
|
-
import { TRPCErrorResponse } from '@trpc/server/rpc';
|
|
4
2
|
import { ObservableCallbacks, UnsubscribeFn } from '../internals/observable';
|
|
5
3
|
import { retryDelay } from '../internals/retryDelay';
|
|
6
|
-
import { TRPCClientError } from '../TRPCClientError';
|
|
7
4
|
import { TRPCLink } from './core';
|
|
8
5
|
declare type Operation = {
|
|
9
6
|
id: number | string;
|
|
@@ -18,7 +15,7 @@ export interface WebSocketClientOptions {
|
|
|
18
15
|
}
|
|
19
16
|
export declare function createWSClient(opts: WebSocketClientOptions): {
|
|
20
17
|
close: () => void;
|
|
21
|
-
request: (op: Operation, callbacks: ObservableCallbacks<
|
|
18
|
+
request: (op: Operation, callbacks: ObservableCallbacks<any, any>) => UnsubscribeFn;
|
|
22
19
|
getConnection(): WebSocket;
|
|
23
20
|
};
|
|
24
21
|
export declare type TRPCWebSocketClient = ReturnType<typeof createWSClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsLink.d.ts","sourceRoot":"../../../../src/links","sources":["wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"wsLink.d.ts","sourceRoot":"../../../../src/links","sources":["wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AASxD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,aAAK,SAAS,GAAG;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;CAClC;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,sBAAsB;;kBAiMpC,SAAS,+CAA0B,aAAa;;EAgDtE;AACD,oBAAY,mBAAmB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAiBD,wBAAgB,MAAM,CAAC,OAAO,SAAS,SAAS,EAC9C,IAAI,EAAE,oBAAoB,GACzB,QAAQ,CAAC,OAAO,CAAC,CA6DnB"}
|
|
@@ -28,25 +28,6 @@ var TRPCAbortError = /*#__PURE__*/function (_Error) {
|
|
|
28
28
|
return _createClass(TRPCAbortError);
|
|
29
29
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
30
30
|
|
|
31
|
-
function transformRPCResponse(_ref) {
|
|
32
|
-
var envelope = _ref.envelope,
|
|
33
|
-
runtime = _ref.runtime;
|
|
34
|
-
|
|
35
|
-
if ('error' in envelope) {
|
|
36
|
-
return TRPCClientError.TRPCClientError.from(_objectSpread(_objectSpread({}, envelope), {}, {
|
|
37
|
-
error: runtime.transformer.deserialize(envelope.error)
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (envelope.result.type === 'data') {
|
|
42
|
-
return _objectSpread(_objectSpread({}, envelope.result), {}, {
|
|
43
|
-
data: runtime.transformer.deserialize(envelope.result.data)
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return envelope.result;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
31
|
// https://github.com/trpc/trpc/pull/669
|
|
51
32
|
function arrayToDict(array) {
|
|
52
33
|
var dict = {};
|
|
@@ -128,6 +109,25 @@ function httpRequest(props) {
|
|
|
128
109
|
};
|
|
129
110
|
}
|
|
130
111
|
|
|
112
|
+
function transformRPCResponse(_ref) {
|
|
113
|
+
var envelope = _ref.envelope,
|
|
114
|
+
runtime = _ref.runtime;
|
|
115
|
+
|
|
116
|
+
if ('error' in envelope) {
|
|
117
|
+
return TRPCClientError.TRPCClientError.from(_objectSpread(_objectSpread({}, envelope), {}, {
|
|
118
|
+
error: runtime.transformer.deserialize(envelope.error)
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (envelope.result.type === 'data') {
|
|
123
|
+
return _objectSpread(_objectSpread({}, envelope.result), {}, {
|
|
124
|
+
data: runtime.transformer.deserialize(envelope.result.data)
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return envelope.result;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
131
|
exports.TRPCAbortError = TRPCAbortError;
|
|
132
132
|
exports.httpRequest = httpRequest;
|
|
133
133
|
exports.transformRPCResponse = transformRPCResponse;
|
|
@@ -28,25 +28,6 @@ var TRPCAbortError = /*#__PURE__*/function (_Error) {
|
|
|
28
28
|
return _createClass(TRPCAbortError);
|
|
29
29
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
30
30
|
|
|
31
|
-
function transformRPCResponse(_ref) {
|
|
32
|
-
var envelope = _ref.envelope,
|
|
33
|
-
runtime = _ref.runtime;
|
|
34
|
-
|
|
35
|
-
if ('error' in envelope) {
|
|
36
|
-
return TRPCClientError.TRPCClientError.from(_objectSpread(_objectSpread({}, envelope), {}, {
|
|
37
|
-
error: runtime.transformer.deserialize(envelope.error)
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (envelope.result.type === 'data') {
|
|
42
|
-
return _objectSpread(_objectSpread({}, envelope.result), {}, {
|
|
43
|
-
data: runtime.transformer.deserialize(envelope.result.data)
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return envelope.result;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
31
|
// https://github.com/trpc/trpc/pull/669
|
|
51
32
|
function arrayToDict(array) {
|
|
52
33
|
var dict = {};
|
|
@@ -128,6 +109,25 @@ function httpRequest(props) {
|
|
|
128
109
|
};
|
|
129
110
|
}
|
|
130
111
|
|
|
112
|
+
function transformRPCResponse(_ref) {
|
|
113
|
+
var envelope = _ref.envelope,
|
|
114
|
+
runtime = _ref.runtime;
|
|
115
|
+
|
|
116
|
+
if ('error' in envelope) {
|
|
117
|
+
return TRPCClientError.TRPCClientError.from(_objectSpread(_objectSpread({}, envelope), {}, {
|
|
118
|
+
error: runtime.transformer.deserialize(envelope.error)
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (envelope.result.type === 'data') {
|
|
123
|
+
return _objectSpread(_objectSpread({}, envelope.result), {}, {
|
|
124
|
+
data: runtime.transformer.deserialize(envelope.result.data)
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return envelope.result;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
131
|
exports.TRPCAbortError = TRPCAbortError;
|
|
132
132
|
exports.httpRequest = httpRequest;
|
|
133
133
|
exports.transformRPCResponse = transformRPCResponse;
|
|
@@ -26,25 +26,6 @@ var TRPCAbortError = /*#__PURE__*/function (_Error) {
|
|
|
26
26
|
return _createClass(TRPCAbortError);
|
|
27
27
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
28
28
|
|
|
29
|
-
function transformRPCResponse(_ref) {
|
|
30
|
-
var envelope = _ref.envelope,
|
|
31
|
-
runtime = _ref.runtime;
|
|
32
|
-
|
|
33
|
-
if ('error' in envelope) {
|
|
34
|
-
return TRPCClientError.from(_objectSpread(_objectSpread({}, envelope), {}, {
|
|
35
|
-
error: runtime.transformer.deserialize(envelope.error)
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (envelope.result.type === 'data') {
|
|
40
|
-
return _objectSpread(_objectSpread({}, envelope.result), {}, {
|
|
41
|
-
data: runtime.transformer.deserialize(envelope.result.data)
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return envelope.result;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
29
|
// https://github.com/trpc/trpc/pull/669
|
|
49
30
|
function arrayToDict(array) {
|
|
50
31
|
var dict = {};
|
|
@@ -126,4 +107,23 @@ function httpRequest(props) {
|
|
|
126
107
|
};
|
|
127
108
|
}
|
|
128
109
|
|
|
110
|
+
function transformRPCResponse(_ref) {
|
|
111
|
+
var envelope = _ref.envelope,
|
|
112
|
+
runtime = _ref.runtime;
|
|
113
|
+
|
|
114
|
+
if ('error' in envelope) {
|
|
115
|
+
return TRPCClientError.from(_objectSpread(_objectSpread({}, envelope), {}, {
|
|
116
|
+
error: runtime.transformer.deserialize(envelope.error)
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (envelope.result.type === 'data') {
|
|
121
|
+
return _objectSpread(_objectSpread({}, envelope.result), {}, {
|
|
122
|
+
data: runtime.transformer.deserialize(envelope.result.data)
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return envelope.result;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
129
|
export { TRPCAbortError as T, httpRequest as h, transformRPCResponse as t };
|
|
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
7
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
8
8
|
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
|
9
|
-
var
|
|
9
|
+
var transformRPCResponse = require('./transformRPCResponse-57e80136.cjs.dev.js');
|
|
10
10
|
var links_httpBatchLink_dist_trpcClientLinksHttpBatchLink = require('../links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js');
|
|
11
11
|
var TRPCClientError = require('./TRPCClientError-bfee2bf5.cjs.dev.js');
|
|
12
12
|
require('@babel/runtime/helpers/assertThisInitialized');
|
|
@@ -299,7 +299,7 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
299
299
|
$result.done();
|
|
300
300
|
},
|
|
301
301
|
onDone: function onDone() {
|
|
302
|
-
reject(TRPCClientError.TRPCClientError.from(new
|
|
302
|
+
reject(TRPCClientError.TRPCClientError.from(new transformRPCResponse.TRPCAbortError()));
|
|
303
303
|
}
|
|
304
304
|
});
|
|
305
305
|
});
|
|
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
7
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
8
8
|
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
|
9
|
-
var
|
|
9
|
+
var transformRPCResponse = require('./transformRPCResponse-739c13d0.cjs.prod.js');
|
|
10
10
|
var links_httpBatchLink_dist_trpcClientLinksHttpBatchLink = require('../links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.prod.js');
|
|
11
11
|
var TRPCClientError = require('./TRPCClientError-e9bf96e9.cjs.prod.js');
|
|
12
12
|
require('@babel/runtime/helpers/assertThisInitialized');
|
|
@@ -299,7 +299,7 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
299
299
|
$result.done();
|
|
300
300
|
},
|
|
301
301
|
onDone: function onDone() {
|
|
302
|
-
reject(TRPCClientError.TRPCClientError.from(new
|
|
302
|
+
reject(TRPCClientError.TRPCClientError.from(new transformRPCResponse.TRPCAbortError()));
|
|
303
303
|
}
|
|
304
304
|
});
|
|
305
305
|
});
|
package/dist/trpc-client.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
|
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/esm/createClass';
|
|
3
3
|
import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';
|
|
4
4
|
import _createForOfIteratorHelper from '@babel/runtime/helpers/esm/createForOfIteratorHelper';
|
|
5
|
-
import { T as TRPCAbortError } from './
|
|
5
|
+
import { T as TRPCAbortError } from './transformRPCResponse-f7f8b0e1.esm.js';
|
|
6
6
|
import { httpBatchLink } from '../links/httpBatchLink/dist/trpc-client-links-httpBatchLink.esm.js';
|
|
7
7
|
import { T as TRPCClientError } from './TRPCClientError-09b8a26b.esm.js';
|
|
8
8
|
export { T as TRPCClientError } from './TRPCClientError-09b8a26b.esm.js';
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var TRPCClientError = require('../../../dist/TRPCClientError-bfee2bf5.cjs.dev.js');
|
|
6
5
|
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
|
7
|
-
var
|
|
8
|
-
require('
|
|
9
|
-
require('@babel/runtime/helpers/classCallCheck');
|
|
6
|
+
var transformRPCResponse = require('../../../dist/transformRPCResponse-57e80136.cjs.dev.js');
|
|
7
|
+
var TRPCClientError = require('../../../dist/TRPCClientError-bfee2bf5.cjs.dev.js');
|
|
10
8
|
require('@babel/runtime/helpers/createClass');
|
|
9
|
+
require('@babel/runtime/helpers/classCallCheck');
|
|
11
10
|
require('@babel/runtime/helpers/assertThisInitialized');
|
|
12
11
|
require('@babel/runtime/helpers/inherits');
|
|
13
12
|
require('@babel/runtime/helpers/createSuper');
|
|
14
13
|
require('@babel/runtime/helpers/wrapNativeSuper');
|
|
14
|
+
require('@babel/runtime/helpers/objectSpread2');
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
18
18
|
* Less configuration, no caching, and allows you to cancel requests
|
|
19
19
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
20
20
|
*/
|
|
21
|
-
function dataLoader(fetchMany) {
|
|
21
|
+
function dataLoader(fetchMany, opts) {
|
|
22
22
|
var batch = null;
|
|
23
23
|
var dispatchTimer = null;
|
|
24
24
|
|
|
@@ -83,6 +83,11 @@ function dataLoader(fetchMany) {
|
|
|
83
83
|
item.reject = reject;
|
|
84
84
|
item.resolve = resolve;
|
|
85
85
|
thisBatch.items.push(item);
|
|
86
|
+
|
|
87
|
+
if (typeof (opts === null || opts === void 0 ? void 0 : opts.maxBatchSize) !== 'undefined' && thisBatch.items.length >= opts.maxBatchSize) {
|
|
88
|
+
dispatch();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
86
91
|
});
|
|
87
92
|
|
|
88
93
|
if (!dispatchTimer) {
|
|
@@ -114,7 +119,8 @@ function dataLoader(fetchMany) {
|
|
|
114
119
|
}
|
|
115
120
|
|
|
116
121
|
function httpBatchLink(opts) {
|
|
117
|
-
var url = opts.url
|
|
122
|
+
var url = opts.url,
|
|
123
|
+
maxBatchSize = opts.maxBatchSize; // initialized config
|
|
118
124
|
|
|
119
125
|
return function (runtime) {
|
|
120
126
|
// initialized in app
|
|
@@ -127,7 +133,7 @@ function httpBatchLink(opts) {
|
|
|
127
133
|
return op.input;
|
|
128
134
|
});
|
|
129
135
|
|
|
130
|
-
var _httpRequest =
|
|
136
|
+
var _httpRequest = transformRPCResponse.httpRequest({
|
|
131
137
|
url: url,
|
|
132
138
|
inputs: inputs,
|
|
133
139
|
path: path,
|
|
@@ -152,9 +158,15 @@ function httpBatchLink(opts) {
|
|
|
152
158
|
};
|
|
153
159
|
};
|
|
154
160
|
|
|
155
|
-
var query = dataLoader(fetcher('query')
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
var query = dataLoader(fetcher('query'), {
|
|
162
|
+
maxBatchSize: maxBatchSize
|
|
163
|
+
});
|
|
164
|
+
var mutation = dataLoader(fetcher('mutation'), {
|
|
165
|
+
maxBatchSize: maxBatchSize
|
|
166
|
+
});
|
|
167
|
+
var subscription = dataLoader(fetcher('subscription'), {
|
|
168
|
+
maxBatchSize: maxBatchSize
|
|
169
|
+
});
|
|
158
170
|
var loaders = {
|
|
159
171
|
query: query,
|
|
160
172
|
subscription: subscription,
|
|
@@ -182,13 +194,13 @@ function httpBatchLink(opts) {
|
|
|
182
194
|
};
|
|
183
195
|
|
|
184
196
|
onDestroy(function () {
|
|
185
|
-
prevOnce(TRPCClientError.TRPCClientError.from(new
|
|
197
|
+
prevOnce(TRPCClientError.TRPCClientError.from(new transformRPCResponse.TRPCAbortError(), {
|
|
186
198
|
isDone: true
|
|
187
199
|
}));
|
|
188
200
|
cancel();
|
|
189
201
|
});
|
|
190
202
|
promise.then(function (envelope) {
|
|
191
|
-
prevOnce(
|
|
203
|
+
prevOnce(transformRPCResponse.transformRPCResponse({
|
|
192
204
|
envelope: envelope,
|
|
193
205
|
runtime: runtime
|
|
194
206
|
}));
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var TRPCClientError = require('../../../dist/TRPCClientError-e9bf96e9.cjs.prod.js');
|
|
6
5
|
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
|
7
|
-
var
|
|
8
|
-
require('
|
|
9
|
-
require('@babel/runtime/helpers/classCallCheck');
|
|
6
|
+
var transformRPCResponse = require('../../../dist/transformRPCResponse-739c13d0.cjs.prod.js');
|
|
7
|
+
var TRPCClientError = require('../../../dist/TRPCClientError-e9bf96e9.cjs.prod.js');
|
|
10
8
|
require('@babel/runtime/helpers/createClass');
|
|
9
|
+
require('@babel/runtime/helpers/classCallCheck');
|
|
11
10
|
require('@babel/runtime/helpers/assertThisInitialized');
|
|
12
11
|
require('@babel/runtime/helpers/inherits');
|
|
13
12
|
require('@babel/runtime/helpers/createSuper');
|
|
14
13
|
require('@babel/runtime/helpers/wrapNativeSuper');
|
|
14
|
+
require('@babel/runtime/helpers/objectSpread2');
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
18
18
|
* Less configuration, no caching, and allows you to cancel requests
|
|
19
19
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
20
20
|
*/
|
|
21
|
-
function dataLoader(fetchMany) {
|
|
21
|
+
function dataLoader(fetchMany, opts) {
|
|
22
22
|
var batch = null;
|
|
23
23
|
var dispatchTimer = null;
|
|
24
24
|
|
|
@@ -83,6 +83,11 @@ function dataLoader(fetchMany) {
|
|
|
83
83
|
item.reject = reject;
|
|
84
84
|
item.resolve = resolve;
|
|
85
85
|
thisBatch.items.push(item);
|
|
86
|
+
|
|
87
|
+
if (typeof (opts === null || opts === void 0 ? void 0 : opts.maxBatchSize) !== 'undefined' && thisBatch.items.length >= opts.maxBatchSize) {
|
|
88
|
+
dispatch();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
86
91
|
});
|
|
87
92
|
|
|
88
93
|
if (!dispatchTimer) {
|
|
@@ -114,7 +119,8 @@ function dataLoader(fetchMany) {
|
|
|
114
119
|
}
|
|
115
120
|
|
|
116
121
|
function httpBatchLink(opts) {
|
|
117
|
-
var url = opts.url
|
|
122
|
+
var url = opts.url,
|
|
123
|
+
maxBatchSize = opts.maxBatchSize; // initialized config
|
|
118
124
|
|
|
119
125
|
return function (runtime) {
|
|
120
126
|
// initialized in app
|
|
@@ -127,7 +133,7 @@ function httpBatchLink(opts) {
|
|
|
127
133
|
return op.input;
|
|
128
134
|
});
|
|
129
135
|
|
|
130
|
-
var _httpRequest =
|
|
136
|
+
var _httpRequest = transformRPCResponse.httpRequest({
|
|
131
137
|
url: url,
|
|
132
138
|
inputs: inputs,
|
|
133
139
|
path: path,
|
|
@@ -152,9 +158,15 @@ function httpBatchLink(opts) {
|
|
|
152
158
|
};
|
|
153
159
|
};
|
|
154
160
|
|
|
155
|
-
var query = dataLoader(fetcher('query')
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
var query = dataLoader(fetcher('query'), {
|
|
162
|
+
maxBatchSize: maxBatchSize
|
|
163
|
+
});
|
|
164
|
+
var mutation = dataLoader(fetcher('mutation'), {
|
|
165
|
+
maxBatchSize: maxBatchSize
|
|
166
|
+
});
|
|
167
|
+
var subscription = dataLoader(fetcher('subscription'), {
|
|
168
|
+
maxBatchSize: maxBatchSize
|
|
169
|
+
});
|
|
158
170
|
var loaders = {
|
|
159
171
|
query: query,
|
|
160
172
|
subscription: subscription,
|
|
@@ -182,13 +194,13 @@ function httpBatchLink(opts) {
|
|
|
182
194
|
};
|
|
183
195
|
|
|
184
196
|
onDestroy(function () {
|
|
185
|
-
prevOnce(TRPCClientError.TRPCClientError.from(new
|
|
197
|
+
prevOnce(TRPCClientError.TRPCClientError.from(new transformRPCResponse.TRPCAbortError(), {
|
|
186
198
|
isDone: true
|
|
187
199
|
}));
|
|
188
200
|
cancel();
|
|
189
201
|
});
|
|
190
202
|
promise.then(function (envelope) {
|
|
191
|
-
prevOnce(
|
|
203
|
+
prevOnce(transformRPCResponse.transformRPCResponse({
|
|
192
204
|
envelope: envelope,
|
|
193
205
|
runtime: runtime
|
|
194
206
|
}));
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { T as TRPCClientError } from '../../../dist/TRPCClientError-09b8a26b.esm.js';
|
|
2
1
|
import _createForOfIteratorHelper from '@babel/runtime/helpers/esm/createForOfIteratorHelper';
|
|
3
|
-
import { T as TRPCAbortError, t as transformRPCResponse, h as httpRequest } from '../../../dist/
|
|
4
|
-
import '
|
|
5
|
-
import '@babel/runtime/helpers/classCallCheck';
|
|
2
|
+
import { T as TRPCAbortError, t as transformRPCResponse, h as httpRequest } from '../../../dist/transformRPCResponse-f7f8b0e1.esm.js';
|
|
3
|
+
import { T as TRPCClientError } from '../../../dist/TRPCClientError-09b8a26b.esm.js';
|
|
6
4
|
import '@babel/runtime/helpers/createClass';
|
|
5
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
7
6
|
import '@babel/runtime/helpers/assertThisInitialized';
|
|
8
7
|
import '@babel/runtime/helpers/inherits';
|
|
9
8
|
import '@babel/runtime/helpers/createSuper';
|
|
10
9
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
10
|
+
import '@babel/runtime/helpers/objectSpread2';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
14
14
|
* Less configuration, no caching, and allows you to cancel requests
|
|
15
15
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
16
16
|
*/
|
|
17
|
-
function dataLoader(fetchMany) {
|
|
17
|
+
function dataLoader(fetchMany, opts) {
|
|
18
18
|
var batch = null;
|
|
19
19
|
var dispatchTimer = null;
|
|
20
20
|
|
|
@@ -79,6 +79,11 @@ function dataLoader(fetchMany) {
|
|
|
79
79
|
item.reject = reject;
|
|
80
80
|
item.resolve = resolve;
|
|
81
81
|
thisBatch.items.push(item);
|
|
82
|
+
|
|
83
|
+
if (typeof (opts === null || opts === void 0 ? void 0 : opts.maxBatchSize) !== 'undefined' && thisBatch.items.length >= opts.maxBatchSize) {
|
|
84
|
+
dispatch();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
82
87
|
});
|
|
83
88
|
|
|
84
89
|
if (!dispatchTimer) {
|
|
@@ -110,7 +115,8 @@ function dataLoader(fetchMany) {
|
|
|
110
115
|
}
|
|
111
116
|
|
|
112
117
|
function httpBatchLink(opts) {
|
|
113
|
-
var url = opts.url
|
|
118
|
+
var url = opts.url,
|
|
119
|
+
maxBatchSize = opts.maxBatchSize; // initialized config
|
|
114
120
|
|
|
115
121
|
return function (runtime) {
|
|
116
122
|
// initialized in app
|
|
@@ -148,9 +154,15 @@ function httpBatchLink(opts) {
|
|
|
148
154
|
};
|
|
149
155
|
};
|
|
150
156
|
|
|
151
|
-
var query = dataLoader(fetcher('query')
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
var query = dataLoader(fetcher('query'), {
|
|
158
|
+
maxBatchSize: maxBatchSize
|
|
159
|
+
});
|
|
160
|
+
var mutation = dataLoader(fetcher('mutation'), {
|
|
161
|
+
maxBatchSize: maxBatchSize
|
|
162
|
+
});
|
|
163
|
+
var subscription = dataLoader(fetcher('subscription'), {
|
|
164
|
+
maxBatchSize: maxBatchSize
|
|
165
|
+
});
|
|
154
166
|
var loaders = {
|
|
155
167
|
query: query,
|
|
156
168
|
subscription: subscription,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var TRPCClientError = require('../../../dist/TRPCClientError-bfee2bf5.cjs.dev.js');
|
|
6
|
-
var
|
|
6
|
+
var transformRPCResponse = require('../../../dist/transformRPCResponse-57e80136.cjs.dev.js');
|
|
7
7
|
require('@babel/runtime/helpers/objectSpread2');
|
|
8
8
|
require('@babel/runtime/helpers/classCallCheck');
|
|
9
9
|
require('@babel/runtime/helpers/createClass');
|
|
@@ -25,7 +25,7 @@ function httpLink(opts) {
|
|
|
25
25
|
input = op.input,
|
|
26
26
|
type = op.type;
|
|
27
27
|
|
|
28
|
-
var _httpRequest =
|
|
28
|
+
var _httpRequest = transformRPCResponse.httpRequest({
|
|
29
29
|
runtime: runtime,
|
|
30
30
|
type: type,
|
|
31
31
|
input: input,
|
|
@@ -47,13 +47,13 @@ function httpLink(opts) {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
onDestroy(function () {
|
|
50
|
-
prevOnce(TRPCClientError.TRPCClientError.from(new
|
|
50
|
+
prevOnce(TRPCClientError.TRPCClientError.from(new transformRPCResponse.TRPCAbortError(), {
|
|
51
51
|
isDone: true
|
|
52
52
|
}));
|
|
53
53
|
cancel();
|
|
54
54
|
});
|
|
55
55
|
promise.then(function (envelope) {
|
|
56
|
-
prevOnce(
|
|
56
|
+
prevOnce(transformRPCResponse.transformRPCResponse({
|
|
57
57
|
envelope: envelope,
|
|
58
58
|
runtime: runtime
|
|
59
59
|
}));
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var TRPCClientError = require('../../../dist/TRPCClientError-e9bf96e9.cjs.prod.js');
|
|
6
|
-
var
|
|
6
|
+
var transformRPCResponse = require('../../../dist/transformRPCResponse-739c13d0.cjs.prod.js');
|
|
7
7
|
require('@babel/runtime/helpers/objectSpread2');
|
|
8
8
|
require('@babel/runtime/helpers/classCallCheck');
|
|
9
9
|
require('@babel/runtime/helpers/createClass');
|
|
@@ -25,7 +25,7 @@ function httpLink(opts) {
|
|
|
25
25
|
input = op.input,
|
|
26
26
|
type = op.type;
|
|
27
27
|
|
|
28
|
-
var _httpRequest =
|
|
28
|
+
var _httpRequest = transformRPCResponse.httpRequest({
|
|
29
29
|
runtime: runtime,
|
|
30
30
|
type: type,
|
|
31
31
|
input: input,
|
|
@@ -47,13 +47,13 @@ function httpLink(opts) {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
onDestroy(function () {
|
|
50
|
-
prevOnce(TRPCClientError.TRPCClientError.from(new
|
|
50
|
+
prevOnce(TRPCClientError.TRPCClientError.from(new transformRPCResponse.TRPCAbortError(), {
|
|
51
51
|
isDone: true
|
|
52
52
|
}));
|
|
53
53
|
cancel();
|
|
54
54
|
});
|
|
55
55
|
promise.then(function (envelope) {
|
|
56
|
-
prevOnce(
|
|
56
|
+
prevOnce(transformRPCResponse.transformRPCResponse({
|
|
57
57
|
envelope: envelope,
|
|
58
58
|
runtime: runtime
|
|
59
59
|
}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { T as TRPCClientError } from '../../../dist/TRPCClientError-09b8a26b.esm.js';
|
|
2
|
-
import { h as httpRequest, T as TRPCAbortError, t as transformRPCResponse } from '../../../dist/
|
|
2
|
+
import { h as httpRequest, T as TRPCAbortError, t as transformRPCResponse } from '../../../dist/transformRPCResponse-f7f8b0e1.esm.js';
|
|
3
3
|
import '@babel/runtime/helpers/objectSpread2';
|
|
4
4
|
import '@babel/runtime/helpers/classCallCheck';
|
|
5
5
|
import '@babel/runtime/helpers/createClass';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/client",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.18.0",
|
|
4
4
|
"description": "tRPC Client lib",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"@babel/runtime": "^7.9.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@trpc/server": "9.
|
|
37
|
+
"@trpc/server": "9.18.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@trpc/server": "9.
|
|
40
|
+
"@trpc/server": "9.18.0"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "e8468a50b289b0231cf1ee92d0f5195fe20c0d44"
|
|
46
46
|
}
|
|
@@ -20,7 +20,10 @@ type BatchLoadFn<TKey, TValue> = (keys: TKey[]) => {
|
|
|
20
20
|
* Less configuration, no caching, and allows you to cancel requests
|
|
21
21
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
22
22
|
*/
|
|
23
|
-
export function dataLoader<TKey, TValue>(
|
|
23
|
+
export function dataLoader<TKey, TValue>(
|
|
24
|
+
fetchMany: BatchLoadFn<TKey, TValue>,
|
|
25
|
+
opts?: { maxBatchSize?: number },
|
|
26
|
+
) {
|
|
24
27
|
let batch: Batch<TKey, TValue> | null = null;
|
|
25
28
|
let dispatchTimer: NodeJS.Timer | number | null = null;
|
|
26
29
|
|
|
@@ -69,7 +72,16 @@ export function dataLoader<TKey, TValue>(fetchMany: BatchLoadFn<TKey, TValue>) {
|
|
|
69
72
|
item.reject = reject;
|
|
70
73
|
item.resolve = resolve;
|
|
71
74
|
thisBatch.items.push(item);
|
|
75
|
+
|
|
76
|
+
if (
|
|
77
|
+
typeof opts?.maxBatchSize !== 'undefined' &&
|
|
78
|
+
thisBatch.items.length >= opts.maxBatchSize
|
|
79
|
+
) {
|
|
80
|
+
dispatch();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
72
83
|
});
|
|
84
|
+
|
|
73
85
|
if (!dispatchTimer) {
|
|
74
86
|
dispatchTimer = setTimeout(dispatch);
|
|
75
87
|
}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { AnyRouter, ProcedureType } from '@trpc/server';
|
|
2
2
|
import { TRPCResponse } from '@trpc/server/rpc';
|
|
3
|
-
import { TRPCClientError } from '../TRPCClientError';
|
|
4
3
|
import { dataLoader } from '../internals/dataLoader';
|
|
5
|
-
import { transformRPCResponse } from '../internals/transformRPCResponse';
|
|
6
4
|
import { httpRequest } from '../internals/httpRequest';
|
|
7
|
-
import {
|
|
5
|
+
import { transformRPCResponse } from '../internals/transformRPCResponse';
|
|
8
6
|
import { TRPCAbortError } from '../internals/TRPCAbortError';
|
|
7
|
+
import { TRPCClientError } from '../TRPCClientError';
|
|
8
|
+
import { HTTPLinkOptions, TRPCLink } from './core';
|
|
9
|
+
|
|
10
|
+
export interface HttpBatchLinkOptions extends HTTPLinkOptions {
|
|
11
|
+
maxBatchSize?: number;
|
|
12
|
+
}
|
|
9
13
|
|
|
10
14
|
export function httpBatchLink<TRouter extends AnyRouter>(
|
|
11
|
-
opts:
|
|
15
|
+
opts: HttpBatchLinkOptions,
|
|
12
16
|
): TRPCLink<TRouter> {
|
|
13
|
-
const { url } = opts;
|
|
17
|
+
const { url, maxBatchSize } = opts;
|
|
14
18
|
// initialized config
|
|
15
19
|
return (runtime) => {
|
|
16
20
|
// initialized in app
|
|
17
21
|
type Key = { id: number; path: string; input: unknown };
|
|
22
|
+
|
|
18
23
|
const fetcher = (type: ProcedureType) => (keyInputPairs: Key[]) => {
|
|
19
24
|
const path = keyInputPairs.map((op) => op.path).join(',');
|
|
20
25
|
const inputs = keyInputPairs.map((op) => op.input);
|
|
@@ -37,11 +42,22 @@ export function httpBatchLink<TRouter extends AnyRouter>(
|
|
|
37
42
|
cancel,
|
|
38
43
|
};
|
|
39
44
|
};
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
45
|
+
|
|
46
|
+
const query = dataLoader<Key, TRPCResponse>(fetcher('query'), {
|
|
47
|
+
maxBatchSize,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const mutation = dataLoader<Key, TRPCResponse>(fetcher('mutation'), {
|
|
51
|
+
maxBatchSize,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const subscription = dataLoader<Key, TRPCResponse>(
|
|
55
|
+
fetcher('subscription'),
|
|
56
|
+
{ maxBatchSize },
|
|
57
|
+
);
|
|
43
58
|
|
|
44
59
|
const loaders = { query, subscription, mutation };
|
|
60
|
+
|
|
45
61
|
return ({ op, prev, onDestroy }) => {
|
|
46
62
|
const loader = loaders[op.type];
|
|
47
63
|
const { promise, cancel } = loader.load(op);
|