@trpc/client 11.3.1 → 11.3.2-canary.2
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/TRPCClientError-CGgRtttT.cjs +67 -0
- package/dist/TRPCClientError-COkhCKf3.mjs +56 -0
- package/dist/TRPCClientError-COkhCKf3.mjs.map +1 -0
- package/dist/chunk-DWy1uDak.cjs +39 -0
- package/dist/httpBatchLink-CIC9PZ_Z.cjs +267 -0
- package/dist/httpBatchLink-DIfnmmcu.mjs +238 -0
- package/dist/httpBatchLink-DIfnmmcu.mjs.map +1 -0
- package/dist/httpBatchLink.d-BN2Iw_cK.d.mts +33 -0
- package/dist/httpBatchLink.d-BN2Iw_cK.d.mts.map +1 -0
- package/dist/httpBatchLink.d-CLAuJKNV.d.cts +33 -0
- package/dist/httpBatchLink.d-CLAuJKNV.d.cts.map +1 -0
- package/dist/httpLink-9bpwQ15c.mjs +90 -0
- package/dist/httpLink-9bpwQ15c.mjs.map +1 -0
- package/dist/httpLink-BbVj_TgM.cjs +113 -0
- package/dist/httpLink.d-CTSOARfE.d.mts +23 -0
- package/dist/httpLink.d-CTSOARfE.d.mts.map +1 -0
- package/dist/httpLink.d-yMKfOlTU.d.cts +23 -0
- package/dist/httpLink.d-yMKfOlTU.d.cts.map +1 -0
- package/dist/httpUtils-3pbQzhUL.mjs +123 -0
- package/dist/httpUtils-3pbQzhUL.mjs.map +1 -0
- package/dist/httpUtils-Buf6jCgh.cjs +163 -0
- package/dist/httpUtils.d-C8wPxU79.d.mts +25 -0
- package/dist/httpUtils.d-C8wPxU79.d.mts.map +1 -0
- package/dist/httpUtils.d-DNRVGNHs.d.cts +25 -0
- package/dist/httpUtils.d-DNRVGNHs.d.cts.map +1 -0
- package/dist/index.cjs +731 -0
- package/dist/index.d.cts +197 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +197 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +733 -16
- package/dist/index.mjs.map +1 -0
- package/dist/links/httpBatchLink.cjs +6 -0
- package/dist/links/httpBatchLink.d.cts +6 -0
- package/dist/links/httpBatchLink.d.mts +6 -0
- package/dist/links/httpBatchLink.mjs +5 -107
- package/dist/links/httpLink.cjs +6 -0
- package/dist/links/httpLink.d.cts +6 -0
- package/dist/links/httpLink.d.mts +6 -0
- package/dist/links/httpLink.mjs +5 -92
- package/dist/links/loggerLink.cjs +3 -0
- package/dist/links/loggerLink.d.cts +4 -0
- package/dist/links/loggerLink.d.mts +4 -0
- package/dist/links/loggerLink.mjs +2 -175
- package/dist/links/splitLink.cjs +3 -0
- package/dist/links/splitLink.d.cts +4 -0
- package/dist/links/splitLink.d.mts +4 -0
- package/dist/links/splitLink.mjs +2 -24
- package/dist/links/wsLink/wsLink.cjs +6 -0
- package/dist/links/wsLink/wsLink.d.cts +5 -0
- package/dist/links/wsLink/wsLink.d.mts +5 -0
- package/dist/links/wsLink/wsLink.mjs +4 -31
- package/dist/loggerLink-CsDfg5Bb.cjs +130 -0
- package/dist/loggerLink-PGBSQFcR.mjs +125 -0
- package/dist/loggerLink-PGBSQFcR.mjs.map +1 -0
- package/dist/loggerLink.d-CZjK1CXm.d.mts +54 -0
- package/dist/loggerLink.d-CZjK1CXm.d.mts.map +1 -0
- package/dist/loggerLink.d-DU855urG.d.cts +54 -0
- package/dist/loggerLink.d-DU855urG.d.cts.map +1 -0
- package/dist/splitLink-BMgxggng.cjs +58 -0
- package/dist/splitLink-BVblHq4n.mjs +47 -0
- package/dist/splitLink-BVblHq4n.mjs.map +1 -0
- package/dist/splitLink.d-BAqgq0NG.d.mts +20 -0
- package/dist/splitLink.d-BAqgq0NG.d.mts.map +1 -0
- package/dist/splitLink.d-GdevSkGW.d.cts +20 -0
- package/dist/splitLink.d-GdevSkGW.d.cts.map +1 -0
- package/dist/subscriptions.d-Ciljg_dH.d.cts +19 -0
- package/dist/subscriptions.d-Ciljg_dH.d.cts.map +1 -0
- package/dist/subscriptions.d-U92STdZl.d.mts +19 -0
- package/dist/subscriptions.d-U92STdZl.d.mts.map +1 -0
- package/dist/types.d-DXbqQLCC.d.mts +182 -0
- package/dist/types.d-DXbqQLCC.d.mts.map +1 -0
- package/dist/types.d-DqGYG6S_.d.cts +182 -0
- package/dist/types.d-DqGYG6S_.d.cts.map +1 -0
- package/dist/unstable-internals-CYBH4jbF.cjs +34 -0
- package/dist/unstable-internals-DU4WecoG.mjs +29 -0
- package/dist/unstable-internals-DU4WecoG.mjs.map +1 -0
- package/dist/unstable-internals.cjs +3 -0
- package/dist/unstable-internals.d-DyLd-B0J.d.mts +46 -0
- package/dist/unstable-internals.d-DyLd-B0J.d.mts.map +1 -0
- package/dist/unstable-internals.d-kWsZTlQq.d.cts +46 -0
- package/dist/unstable-internals.d-kWsZTlQq.d.cts.map +1 -0
- package/dist/unstable-internals.d.cts +3 -0
- package/dist/unstable-internals.d.mts +3 -0
- package/dist/unstable-internals.mjs +3 -1
- package/dist/wsLink-DbSHOzlB.mjs +698 -0
- package/dist/wsLink-DbSHOzlB.mjs.map +1 -0
- package/dist/wsLink-DhJ50EC5.cjs +715 -0
- package/dist/wsLink.d-BqO7ltN_.d.mts +194 -0
- package/dist/wsLink.d-BqO7ltN_.d.mts.map +1 -0
- package/dist/wsLink.d-DtZjg09g.d.cts +194 -0
- package/dist/wsLink.d-DtZjg09g.d.cts.map +1 -0
- package/links/httpBatchLink/package.json +1 -0
- package/links/httpLink/package.json +1 -0
- package/links/loggerLink/package.json +1 -0
- package/links/splitLink/package.json +1 -0
- package/links/wsLink/wsLink/package.json +1 -0
- package/package.json +67 -33
- package/unstable-internals/package.json +1 -0
- package/dist/TRPCClientError.d.ts +0 -30
- package/dist/TRPCClientError.d.ts.map +0 -1
- package/dist/TRPCClientError.js +0 -79
- package/dist/TRPCClientError.mjs +0 -76
- package/dist/createTRPCClient.d.ts +0 -69
- package/dist/createTRPCClient.d.ts.map +0 -1
- package/dist/createTRPCClient.js +0 -48
- package/dist/createTRPCClient.mjs +0 -43
- package/dist/createTRPCUntypedClient.d.ts +0 -7
- package/dist/createTRPCUntypedClient.d.ts.map +0 -1
- package/dist/createTRPCUntypedClient.js +0 -10
- package/dist/createTRPCUntypedClient.mjs +0 -7
- package/dist/getFetch.d.ts +0 -3
- package/dist/getFetch.d.ts.map +0 -1
- package/dist/getFetch.js +0 -17
- package/dist/getFetch.mjs +0 -15
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -46
- package/dist/internals/TRPCUntypedClient.d.ts +0 -39
- package/dist/internals/TRPCUntypedClient.d.ts.map +0 -1
- package/dist/internals/TRPCUntypedClient.js +0 -115
- package/dist/internals/TRPCUntypedClient.mjs +0 -113
- package/dist/internals/dataLoader.d.ts +0 -13
- package/dist/internals/dataLoader.d.ts.map +0 -1
- package/dist/internals/dataLoader.js +0 -117
- package/dist/internals/dataLoader.mjs +0 -115
- package/dist/internals/inputWithTrackedEventId.d.ts +0 -2
- package/dist/internals/inputWithTrackedEventId.d.ts.map +0 -1
- package/dist/internals/inputWithTrackedEventId.js +0 -16
- package/dist/internals/inputWithTrackedEventId.mjs +0 -14
- package/dist/internals/signals.d.ts +0 -16
- package/dist/internals/signals.d.ts.map +0 -1
- package/dist/internals/signals.js +0 -61
- package/dist/internals/signals.mjs +0 -57
- package/dist/internals/transformer.d.ts +0 -42
- package/dist/internals/transformer.d.ts.map +0 -1
- package/dist/internals/transformer.js +0 -30
- package/dist/internals/transformer.mjs +0 -28
- package/dist/internals/types.d.ts +0 -82
- package/dist/internals/types.d.ts.map +0 -1
- package/dist/links/HTTPBatchLinkOptions.d.ts +0 -20
- package/dist/links/HTTPBatchLinkOptions.d.ts.map +0 -1
- package/dist/links/httpBatchLink.d.ts +0 -8
- package/dist/links/httpBatchLink.d.ts.map +0 -1
- package/dist/links/httpBatchLink.js +0 -110
- package/dist/links/httpBatchStreamLink.d.ts +0 -12
- package/dist/links/httpBatchStreamLink.d.ts.map +0 -1
- package/dist/links/httpBatchStreamLink.js +0 -150
- package/dist/links/httpBatchStreamLink.mjs +0 -147
- package/dist/links/httpLink.d.ts +0 -17
- package/dist/links/httpLink.d.ts.map +0 -1
- package/dist/links/httpLink.js +0 -95
- package/dist/links/httpSubscriptionLink.d.ts +0 -26
- package/dist/links/httpSubscriptionLink.d.ts.map +0 -1
- package/dist/links/httpSubscriptionLink.js +0 -177
- package/dist/links/httpSubscriptionLink.mjs +0 -174
- package/dist/links/internals/contentTypes.d.ts +0 -4
- package/dist/links/internals/contentTypes.d.ts.map +0 -1
- package/dist/links/internals/contentTypes.js +0 -16
- package/dist/links/internals/contentTypes.mjs +0 -12
- package/dist/links/internals/createChain.d.ts +0 -8
- package/dist/links/internals/createChain.d.ts.map +0 -1
- package/dist/links/internals/createChain.js +0 -26
- package/dist/links/internals/createChain.mjs +0 -24
- package/dist/links/internals/dedupeLink.d.ts +0 -7
- package/dist/links/internals/dedupeLink.d.ts.map +0 -1
- package/dist/links/internals/httpUtils.d.ts +0 -68
- package/dist/links/internals/httpUtils.d.ts.map +0 -1
- package/dist/links/internals/httpUtils.js +0 -141
- package/dist/links/internals/httpUtils.mjs +0 -133
- package/dist/links/internals/subscriptions.d.ts +0 -17
- package/dist/links/internals/subscriptions.d.ts.map +0 -1
- package/dist/links/internals/urlWithConnectionParams.d.ts +0 -23
- package/dist/links/internals/urlWithConnectionParams.d.ts.map +0 -1
- package/dist/links/internals/urlWithConnectionParams.js +0 -10
- package/dist/links/internals/urlWithConnectionParams.mjs +0 -8
- package/dist/links/localLink.d.ts +0 -15
- package/dist/links/localLink.d.ts.map +0 -1
- package/dist/links/localLink.js +0 -333
- package/dist/links/localLink.mjs +0 -331
- package/dist/links/loggerLink.d.ts +0 -52
- package/dist/links/loggerLink.d.ts.map +0 -1
- package/dist/links/loggerLink.js +0 -178
- package/dist/links/retryLink.d.ts +0 -33
- package/dist/links/retryLink.d.ts.map +0 -1
- package/dist/links/retryLink.js +0 -72
- package/dist/links/retryLink.mjs +0 -70
- package/dist/links/splitLink.d.ts +0 -14
- package/dist/links/splitLink.d.ts.map +0 -1
- package/dist/links/splitLink.js +0 -27
- package/dist/links/types.d.ts +0 -63
- package/dist/links/types.d.ts.map +0 -1
- package/dist/links/wsLink/createWsClient.d.ts +0 -6
- package/dist/links/wsLink/createWsClient.d.ts.map +0 -1
- package/dist/links/wsLink/createWsClient.js +0 -9
- package/dist/links/wsLink/createWsClient.mjs +0 -7
- package/dist/links/wsLink/wsClient/options.d.ts +0 -79
- package/dist/links/wsLink/wsClient/options.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/options.js +0 -22
- package/dist/links/wsLink/wsClient/options.mjs +0 -18
- package/dist/links/wsLink/wsClient/requestManager.d.ts +0 -106
- package/dist/links/wsLink/wsClient/requestManager.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/requestManager.js +0 -143
- package/dist/links/wsLink/wsClient/requestManager.mjs +0 -141
- package/dist/links/wsLink/wsClient/utils.d.ts +0 -38
- package/dist/links/wsLink/wsClient/utils.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/utils.js +0 -94
- package/dist/links/wsLink/wsClient/utils.mjs +0 -88
- package/dist/links/wsLink/wsClient/wsClient.d.ts +0 -84
- package/dist/links/wsLink/wsClient/wsClient.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/wsClient.js +0 -325
- package/dist/links/wsLink/wsClient/wsClient.mjs +0 -323
- package/dist/links/wsLink/wsClient/wsConnection.d.ts +0 -79
- package/dist/links/wsLink/wsClient/wsConnection.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/wsConnection.js +0 -188
- package/dist/links/wsLink/wsClient/wsConnection.mjs +0 -185
- package/dist/links/wsLink/wsLink.d.ts +0 -11
- package/dist/links/wsLink/wsLink.d.ts.map +0 -1
- package/dist/links/wsLink/wsLink.js +0 -35
- package/dist/links.d.ts +0 -12
- package/dist/links.d.ts.map +0 -1
- package/dist/unstable-internals.d.ts +0 -3
- package/dist/unstable-internals.d.ts.map +0 -1
- package/dist/unstable-internals.js +0 -7
- package/links/httpBatchLink/index.d.ts +0 -1
- package/links/httpBatchLink/index.js +0 -1
- package/links/httpLink/index.d.ts +0 -1
- package/links/httpLink/index.js +0 -1
- package/links/loggerLink/index.d.ts +0 -1
- package/links/loggerLink/index.js +0 -1
- package/links/splitLink/index.d.ts +0 -1
- package/links/splitLink/index.js +0 -1
- package/links/wsLink/index.d.ts +0 -1
- package/links/wsLink/index.js +0 -1
- package/links/wsLink/wsLink/index.d.ts +0 -1
- package/links/wsLink/wsLink/index.js +0 -1
- package/unstable-internals/index.d.ts +0 -1
- package/unstable-internals/index.js +0 -1
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { share, observableToPromise } from '@trpc/server/observable';
|
|
2
|
-
import { createChain } from '../links/internals/createChain.mjs';
|
|
3
|
-
import { TRPCClientError } from '../TRPCClientError.mjs';
|
|
4
|
-
|
|
5
|
-
function _define_property(obj, key, value) {
|
|
6
|
-
if (key in obj) {
|
|
7
|
-
Object.defineProperty(obj, key, {
|
|
8
|
-
value: value,
|
|
9
|
-
enumerable: true,
|
|
10
|
-
configurable: true,
|
|
11
|
-
writable: true
|
|
12
|
-
});
|
|
13
|
-
} else {
|
|
14
|
-
obj[key] = value;
|
|
15
|
-
}
|
|
16
|
-
return obj;
|
|
17
|
-
}
|
|
18
|
-
class TRPCUntypedClient {
|
|
19
|
-
$request(opts) {
|
|
20
|
-
const chain$ = createChain({
|
|
21
|
-
links: this.links,
|
|
22
|
-
op: {
|
|
23
|
-
...opts,
|
|
24
|
-
context: opts.context ?? {},
|
|
25
|
-
id: ++this.requestId
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
return chain$.pipe(share());
|
|
29
|
-
}
|
|
30
|
-
async requestAsPromise(opts) {
|
|
31
|
-
try {
|
|
32
|
-
const req$ = this.$request(opts);
|
|
33
|
-
const envelope = await observableToPromise(req$);
|
|
34
|
-
const data = envelope.result.data;
|
|
35
|
-
return data;
|
|
36
|
-
} catch (err) {
|
|
37
|
-
throw TRPCClientError.from(err);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
query(path, input, opts) {
|
|
41
|
-
return this.requestAsPromise({
|
|
42
|
-
type: 'query',
|
|
43
|
-
path,
|
|
44
|
-
input,
|
|
45
|
-
context: opts?.context,
|
|
46
|
-
signal: opts?.signal
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
mutation(path, input, opts) {
|
|
50
|
-
return this.requestAsPromise({
|
|
51
|
-
type: 'mutation',
|
|
52
|
-
path,
|
|
53
|
-
input,
|
|
54
|
-
context: opts?.context,
|
|
55
|
-
signal: opts?.signal
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
subscription(path, input, opts) {
|
|
59
|
-
const observable$ = this.$request({
|
|
60
|
-
type: 'subscription',
|
|
61
|
-
path,
|
|
62
|
-
input,
|
|
63
|
-
context: opts.context,
|
|
64
|
-
signal: opts.signal
|
|
65
|
-
});
|
|
66
|
-
return observable$.subscribe({
|
|
67
|
-
next (envelope) {
|
|
68
|
-
switch(envelope.result.type){
|
|
69
|
-
case 'state':
|
|
70
|
-
{
|
|
71
|
-
opts.onConnectionStateChange?.(envelope.result);
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
case 'started':
|
|
75
|
-
{
|
|
76
|
-
opts.onStarted?.({
|
|
77
|
-
context: envelope.context
|
|
78
|
-
});
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
case 'stopped':
|
|
82
|
-
{
|
|
83
|
-
opts.onStopped?.();
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
case 'data':
|
|
87
|
-
case undefined:
|
|
88
|
-
{
|
|
89
|
-
opts.onData?.(envelope.result.data);
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
error (err) {
|
|
95
|
-
opts.onError?.(err);
|
|
96
|
-
},
|
|
97
|
-
complete () {
|
|
98
|
-
opts.onComplete?.();
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
constructor(opts){
|
|
103
|
-
_define_property(this, "links", void 0);
|
|
104
|
-
_define_property(this, "runtime", void 0);
|
|
105
|
-
_define_property(this, "requestId", void 0);
|
|
106
|
-
this.requestId = 0;
|
|
107
|
-
this.runtime = {};
|
|
108
|
-
// Initialize the links
|
|
109
|
-
this.links = opts.links.map((link)=>link(this.runtime));
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export { TRPCUntypedClient };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export type BatchLoader<TKey, TValue> = {
|
|
2
|
-
validate: (keys: TKey[]) => boolean;
|
|
3
|
-
fetch: (keys: TKey[]) => Promise<TValue[] | Promise<TValue>[]>;
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
7
|
-
* Less configuration, no caching, and allows you to cancel requests
|
|
8
|
-
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
9
|
-
*/
|
|
10
|
-
export declare function dataLoader<TKey, TValue>(batchLoader: BatchLoader<TKey, TValue>): {
|
|
11
|
-
load: (key: TKey) => Promise<TValue>;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=dataLoader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataLoader.d.ts","sourceRoot":"","sources":["../../src/internals/dataLoader.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC;IACpC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;CAChE,CAAC;AAWF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EACrC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;gBAsGnB,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC;EAyB1C"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */ /**
|
|
4
|
-
* A function that should never be called unless we messed something up.
|
|
5
|
-
*/ const throwFatalError = ()=>{
|
|
6
|
-
throw new Error('Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new');
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
10
|
-
* Less configuration, no caching, and allows you to cancel requests
|
|
11
|
-
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
12
|
-
*/ function dataLoader(batchLoader) {
|
|
13
|
-
let pendingItems = null;
|
|
14
|
-
let dispatchTimer = null;
|
|
15
|
-
const destroyTimerAndPendingItems = ()=>{
|
|
16
|
-
clearTimeout(dispatchTimer);
|
|
17
|
-
dispatchTimer = null;
|
|
18
|
-
pendingItems = null;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Iterate through the items and split them into groups based on the `batchLoader`'s validate function
|
|
22
|
-
*/ function groupItems(items) {
|
|
23
|
-
const groupedItems = [
|
|
24
|
-
[]
|
|
25
|
-
];
|
|
26
|
-
let index = 0;
|
|
27
|
-
while(true){
|
|
28
|
-
const item = items[index];
|
|
29
|
-
if (!item) {
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
const lastGroup = groupedItems[groupedItems.length - 1];
|
|
33
|
-
if (item.aborted) {
|
|
34
|
-
// Item was aborted before it was dispatched
|
|
35
|
-
item.reject?.(new Error('Aborted'));
|
|
36
|
-
index++;
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
const isValid = batchLoader.validate(lastGroup.concat(item).map((it)=>it.key));
|
|
40
|
-
if (isValid) {
|
|
41
|
-
lastGroup.push(item);
|
|
42
|
-
index++;
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
if (lastGroup.length === 0) {
|
|
46
|
-
item.reject?.(new Error('Input is too big for a single dispatch'));
|
|
47
|
-
index++;
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
// Create new group, next iteration will try to add the item to that
|
|
51
|
-
groupedItems.push([]);
|
|
52
|
-
}
|
|
53
|
-
return groupedItems;
|
|
54
|
-
}
|
|
55
|
-
function dispatch() {
|
|
56
|
-
const groupedItems = groupItems(pendingItems);
|
|
57
|
-
destroyTimerAndPendingItems();
|
|
58
|
-
// Create batches for each group of items
|
|
59
|
-
for (const items of groupedItems){
|
|
60
|
-
if (!items.length) {
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
const batch = {
|
|
64
|
-
items
|
|
65
|
-
};
|
|
66
|
-
for (const item of items){
|
|
67
|
-
item.batch = batch;
|
|
68
|
-
}
|
|
69
|
-
const promise = batchLoader.fetch(batch.items.map((_item)=>_item.key));
|
|
70
|
-
promise.then(async (result)=>{
|
|
71
|
-
await Promise.all(result.map(async (valueOrPromise, index)=>{
|
|
72
|
-
const item = batch.items[index];
|
|
73
|
-
try {
|
|
74
|
-
const value = await Promise.resolve(valueOrPromise);
|
|
75
|
-
item.resolve?.(value);
|
|
76
|
-
} catch (cause) {
|
|
77
|
-
item.reject?.(cause);
|
|
78
|
-
}
|
|
79
|
-
item.batch = null;
|
|
80
|
-
item.reject = null;
|
|
81
|
-
item.resolve = null;
|
|
82
|
-
}));
|
|
83
|
-
for (const item of batch.items){
|
|
84
|
-
item.reject?.(new Error('Missing result'));
|
|
85
|
-
item.batch = null;
|
|
86
|
-
}
|
|
87
|
-
}).catch((cause)=>{
|
|
88
|
-
for (const item of batch.items){
|
|
89
|
-
item.reject?.(cause);
|
|
90
|
-
item.batch = null;
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
function load(key) {
|
|
96
|
-
const item = {
|
|
97
|
-
aborted: false,
|
|
98
|
-
key,
|
|
99
|
-
batch: null,
|
|
100
|
-
resolve: throwFatalError,
|
|
101
|
-
reject: throwFatalError
|
|
102
|
-
};
|
|
103
|
-
const promise = new Promise((resolve, reject)=>{
|
|
104
|
-
item.reject = reject;
|
|
105
|
-
item.resolve = resolve;
|
|
106
|
-
pendingItems ?? (pendingItems = []);
|
|
107
|
-
pendingItems.push(item);
|
|
108
|
-
});
|
|
109
|
-
dispatchTimer ?? (dispatchTimer = setTimeout(dispatch));
|
|
110
|
-
return promise;
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
load
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
exports.dataLoader = dataLoader;
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */ /**
|
|
2
|
-
* A function that should never be called unless we messed something up.
|
|
3
|
-
*/ const throwFatalError = ()=>{
|
|
4
|
-
throw new Error('Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new');
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
8
|
-
* Less configuration, no caching, and allows you to cancel requests
|
|
9
|
-
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
10
|
-
*/ function dataLoader(batchLoader) {
|
|
11
|
-
let pendingItems = null;
|
|
12
|
-
let dispatchTimer = null;
|
|
13
|
-
const destroyTimerAndPendingItems = ()=>{
|
|
14
|
-
clearTimeout(dispatchTimer);
|
|
15
|
-
dispatchTimer = null;
|
|
16
|
-
pendingItems = null;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Iterate through the items and split them into groups based on the `batchLoader`'s validate function
|
|
20
|
-
*/ function groupItems(items) {
|
|
21
|
-
const groupedItems = [
|
|
22
|
-
[]
|
|
23
|
-
];
|
|
24
|
-
let index = 0;
|
|
25
|
-
while(true){
|
|
26
|
-
const item = items[index];
|
|
27
|
-
if (!item) {
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
const lastGroup = groupedItems[groupedItems.length - 1];
|
|
31
|
-
if (item.aborted) {
|
|
32
|
-
// Item was aborted before it was dispatched
|
|
33
|
-
item.reject?.(new Error('Aborted'));
|
|
34
|
-
index++;
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
const isValid = batchLoader.validate(lastGroup.concat(item).map((it)=>it.key));
|
|
38
|
-
if (isValid) {
|
|
39
|
-
lastGroup.push(item);
|
|
40
|
-
index++;
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (lastGroup.length === 0) {
|
|
44
|
-
item.reject?.(new Error('Input is too big for a single dispatch'));
|
|
45
|
-
index++;
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
// Create new group, next iteration will try to add the item to that
|
|
49
|
-
groupedItems.push([]);
|
|
50
|
-
}
|
|
51
|
-
return groupedItems;
|
|
52
|
-
}
|
|
53
|
-
function dispatch() {
|
|
54
|
-
const groupedItems = groupItems(pendingItems);
|
|
55
|
-
destroyTimerAndPendingItems();
|
|
56
|
-
// Create batches for each group of items
|
|
57
|
-
for (const items of groupedItems){
|
|
58
|
-
if (!items.length) {
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
const batch = {
|
|
62
|
-
items
|
|
63
|
-
};
|
|
64
|
-
for (const item of items){
|
|
65
|
-
item.batch = batch;
|
|
66
|
-
}
|
|
67
|
-
const promise = batchLoader.fetch(batch.items.map((_item)=>_item.key));
|
|
68
|
-
promise.then(async (result)=>{
|
|
69
|
-
await Promise.all(result.map(async (valueOrPromise, index)=>{
|
|
70
|
-
const item = batch.items[index];
|
|
71
|
-
try {
|
|
72
|
-
const value = await Promise.resolve(valueOrPromise);
|
|
73
|
-
item.resolve?.(value);
|
|
74
|
-
} catch (cause) {
|
|
75
|
-
item.reject?.(cause);
|
|
76
|
-
}
|
|
77
|
-
item.batch = null;
|
|
78
|
-
item.reject = null;
|
|
79
|
-
item.resolve = null;
|
|
80
|
-
}));
|
|
81
|
-
for (const item of batch.items){
|
|
82
|
-
item.reject?.(new Error('Missing result'));
|
|
83
|
-
item.batch = null;
|
|
84
|
-
}
|
|
85
|
-
}).catch((cause)=>{
|
|
86
|
-
for (const item of batch.items){
|
|
87
|
-
item.reject?.(cause);
|
|
88
|
-
item.batch = null;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function load(key) {
|
|
94
|
-
const item = {
|
|
95
|
-
aborted: false,
|
|
96
|
-
key,
|
|
97
|
-
batch: null,
|
|
98
|
-
resolve: throwFatalError,
|
|
99
|
-
reject: throwFatalError
|
|
100
|
-
};
|
|
101
|
-
const promise = new Promise((resolve, reject)=>{
|
|
102
|
-
item.reject = reject;
|
|
103
|
-
item.resolve = resolve;
|
|
104
|
-
pendingItems ?? (pendingItems = []);
|
|
105
|
-
pendingItems.push(item);
|
|
106
|
-
});
|
|
107
|
-
dispatchTimer ?? (dispatchTimer = setTimeout(dispatch));
|
|
108
|
-
return promise;
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
load
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export { dataLoader };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inputWithTrackedEventId.d.ts","sourceRoot":"","sources":["../../src/internals/inputWithTrackedEventId.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,WAYhC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
function inputWithTrackedEventId(input, lastEventId) {
|
|
4
|
-
if (!lastEventId) {
|
|
5
|
-
return input;
|
|
6
|
-
}
|
|
7
|
-
if (input != null && typeof input !== 'object') {
|
|
8
|
-
return input;
|
|
9
|
-
}
|
|
10
|
-
return {
|
|
11
|
-
...input ?? {},
|
|
12
|
-
lastEventId
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
exports.inputWithTrackedEventId = inputWithTrackedEventId;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
function inputWithTrackedEventId(input, lastEventId) {
|
|
2
|
-
if (!lastEventId) {
|
|
3
|
-
return input;
|
|
4
|
-
}
|
|
5
|
-
if (input != null && typeof input !== 'object') {
|
|
6
|
-
return input;
|
|
7
|
-
}
|
|
8
|
-
return {
|
|
9
|
-
...input ?? {},
|
|
10
|
-
lastEventId
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export { inputWithTrackedEventId };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Maybe } from '@trpc/server/unstable-core-do-not-import';
|
|
2
|
-
/**
|
|
3
|
-
* Like `Promise.all()` but for abort signals
|
|
4
|
-
* - When all signals have been aborted, the merged signal will be aborted
|
|
5
|
-
* - If one signal is `null`, no signal will be aborted
|
|
6
|
-
*/
|
|
7
|
-
export declare function allAbortSignals(...signals: Maybe<AbortSignal>[]): AbortSignal;
|
|
8
|
-
/**
|
|
9
|
-
* Like `Promise.race` but for abort signals
|
|
10
|
-
*
|
|
11
|
-
* Basically, a ponyfill for
|
|
12
|
-
* [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
|
|
13
|
-
*/
|
|
14
|
-
export declare function raceAbortSignals(...signals: Maybe<AbortSignal>[]): AbortSignal;
|
|
15
|
-
export declare function abortSignalToPromise(signal: AbortSignal): Promise<never>;
|
|
16
|
-
//# sourceMappingURL=signals.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/internals/signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,CAwB7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,GAC/B,WAAW,CAYb;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAcxE"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Like `Promise.all()` but for abort signals
|
|
5
|
-
* - When all signals have been aborted, the merged signal will be aborted
|
|
6
|
-
* - If one signal is `null`, no signal will be aborted
|
|
7
|
-
*/ function allAbortSignals(...signals) {
|
|
8
|
-
const ac = new AbortController();
|
|
9
|
-
const count = signals.length;
|
|
10
|
-
let abortedCount = 0;
|
|
11
|
-
const onAbort = ()=>{
|
|
12
|
-
if (++abortedCount === count) {
|
|
13
|
-
ac.abort();
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
for (const signal of signals){
|
|
17
|
-
if (signal?.aborted) {
|
|
18
|
-
onAbort();
|
|
19
|
-
} else {
|
|
20
|
-
signal?.addEventListener('abort', onAbort, {
|
|
21
|
-
once: true
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return ac.signal;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Like `Promise.race` but for abort signals
|
|
29
|
-
*
|
|
30
|
-
* Basically, a ponyfill for
|
|
31
|
-
* [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
|
|
32
|
-
*/ function raceAbortSignals(...signals) {
|
|
33
|
-
const ac = new AbortController();
|
|
34
|
-
for (const signal of signals){
|
|
35
|
-
if (signal?.aborted) {
|
|
36
|
-
ac.abort();
|
|
37
|
-
} else {
|
|
38
|
-
signal?.addEventListener('abort', ()=>ac.abort(), {
|
|
39
|
-
once: true
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return ac.signal;
|
|
44
|
-
}
|
|
45
|
-
function abortSignalToPromise(signal) {
|
|
46
|
-
return new Promise((_, reject)=>{
|
|
47
|
-
if (signal.aborted) {
|
|
48
|
-
reject(signal.reason);
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
signal.addEventListener('abort', ()=>{
|
|
52
|
-
reject(signal.reason);
|
|
53
|
-
}, {
|
|
54
|
-
once: true
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
exports.abortSignalToPromise = abortSignalToPromise;
|
|
60
|
-
exports.allAbortSignals = allAbortSignals;
|
|
61
|
-
exports.raceAbortSignals = raceAbortSignals;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Like `Promise.all()` but for abort signals
|
|
3
|
-
* - When all signals have been aborted, the merged signal will be aborted
|
|
4
|
-
* - If one signal is `null`, no signal will be aborted
|
|
5
|
-
*/ function allAbortSignals(...signals) {
|
|
6
|
-
const ac = new AbortController();
|
|
7
|
-
const count = signals.length;
|
|
8
|
-
let abortedCount = 0;
|
|
9
|
-
const onAbort = ()=>{
|
|
10
|
-
if (++abortedCount === count) {
|
|
11
|
-
ac.abort();
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
for (const signal of signals){
|
|
15
|
-
if (signal?.aborted) {
|
|
16
|
-
onAbort();
|
|
17
|
-
} else {
|
|
18
|
-
signal?.addEventListener('abort', onAbort, {
|
|
19
|
-
once: true
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return ac.signal;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Like `Promise.race` but for abort signals
|
|
27
|
-
*
|
|
28
|
-
* Basically, a ponyfill for
|
|
29
|
-
* [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
|
|
30
|
-
*/ function raceAbortSignals(...signals) {
|
|
31
|
-
const ac = new AbortController();
|
|
32
|
-
for (const signal of signals){
|
|
33
|
-
if (signal?.aborted) {
|
|
34
|
-
ac.abort();
|
|
35
|
-
} else {
|
|
36
|
-
signal?.addEventListener('abort', ()=>ac.abort(), {
|
|
37
|
-
once: true
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return ac.signal;
|
|
42
|
-
}
|
|
43
|
-
function abortSignalToPromise(signal) {
|
|
44
|
-
return new Promise((_, reject)=>{
|
|
45
|
-
if (signal.aborted) {
|
|
46
|
-
reject(signal.reason);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
signal.addEventListener('abort', ()=>{
|
|
50
|
-
reject(signal.reason);
|
|
51
|
-
}, {
|
|
52
|
-
once: true
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export { abortSignalToPromise, allAbortSignals, raceAbortSignals };
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { AnyClientTypes, CombinedDataTransformer, DataTransformerOptions, TypeError } from '@trpc/server/unstable-core-do-not-import';
|
|
2
|
-
/**
|
|
3
|
-
* @internal
|
|
4
|
-
*/
|
|
5
|
-
export type CoercedTransformerParameters = {
|
|
6
|
-
transformer?: DataTransformerOptions;
|
|
7
|
-
};
|
|
8
|
-
type TransformerOptionYes = {
|
|
9
|
-
/**
|
|
10
|
-
* Data transformer
|
|
11
|
-
*
|
|
12
|
-
* You must use the same transformer on the backend and frontend
|
|
13
|
-
* @see https://trpc.io/docs/v11/data-transformers
|
|
14
|
-
**/
|
|
15
|
-
transformer: DataTransformerOptions;
|
|
16
|
-
};
|
|
17
|
-
type TransformerOptionNo = {
|
|
18
|
-
/**
|
|
19
|
-
* Data transformer
|
|
20
|
-
*
|
|
21
|
-
* You must use the same transformer on the backend and frontend
|
|
22
|
-
* @see https://trpc.io/docs/v11/data-transformers
|
|
23
|
-
**/
|
|
24
|
-
transformer?: TypeError<'You must define a transformer on your your `initTRPC`-object first'>;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
export type TransformerOptions<TRoot extends Pick<AnyClientTypes, 'transformer'>> = TRoot['transformer'] extends true ? TransformerOptionYes : TransformerOptionNo;
|
|
30
|
-
/**
|
|
31
|
-
* @internal
|
|
32
|
-
*/
|
|
33
|
-
/**
|
|
34
|
-
* @internal
|
|
35
|
-
*/
|
|
36
|
-
export declare function getTransformer(transformer: TransformerOptions<{
|
|
37
|
-
transformer: false;
|
|
38
|
-
}>['transformer'] | TransformerOptions<{
|
|
39
|
-
transformer: true;
|
|
40
|
-
}>['transformer'] | undefined): CombinedDataTransformer;
|
|
41
|
-
export {};
|
|
42
|
-
//# sourceMappingURL=transformer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/internals/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,SAAS,EACV,MAAM,0CAA0C,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B;;;;;QAKI;IACJ,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AACF,KAAK,mBAAmB,GAAG;IACzB;;;;;QAKI;IACJ,WAAW,CAAC,EAAE,SAAS,CAAC,oEAAoE,CAAC,CAAC;CAC/F,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAC/C,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,GACjC,oBAAoB,GACpB,mBAAmB,CAAC;AACxB;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EACP,kBAAkB,CAAC;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,aAAa,CAAC,GACzD,kBAAkB,CAAC;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,aAAa,CAAC,GACxD,SAAS,GACZ,uBAAuB,CAsBzB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
*/ /**
|
|
6
|
-
* @internal
|
|
7
|
-
*/ function getTransformer(transformer) {
|
|
8
|
-
const _transformer = transformer;
|
|
9
|
-
if (!_transformer) {
|
|
10
|
-
return {
|
|
11
|
-
input: {
|
|
12
|
-
serialize: (data)=>data,
|
|
13
|
-
deserialize: (data)=>data
|
|
14
|
-
},
|
|
15
|
-
output: {
|
|
16
|
-
serialize: (data)=>data,
|
|
17
|
-
deserialize: (data)=>data
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
if ('input' in _transformer) {
|
|
22
|
-
return _transformer;
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
input: _transformer,
|
|
26
|
-
output: _transformer
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
exports.getTransformer = getTransformer;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*/ /**
|
|
4
|
-
* @internal
|
|
5
|
-
*/ function getTransformer(transformer) {
|
|
6
|
-
const _transformer = transformer;
|
|
7
|
-
if (!_transformer) {
|
|
8
|
-
return {
|
|
9
|
-
input: {
|
|
10
|
-
serialize: (data)=>data,
|
|
11
|
-
deserialize: (data)=>data
|
|
12
|
-
},
|
|
13
|
-
output: {
|
|
14
|
-
serialize: (data)=>data,
|
|
15
|
-
deserialize: (data)=>data
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
if ('input' in _transformer) {
|
|
20
|
-
return _transformer;
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
input: _transformer,
|
|
24
|
-
output: _transformer
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { getTransformer };
|