@trpc/client 10.28.0 → 10.28.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.d.ts +25 -25
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/createTRPCClient.d.ts +19 -19
- package/dist/createTRPCClient.d.ts.map +1 -1
- package/dist/createTRPCClientProxy.d.ts +38 -38
- package/dist/createTRPCClientProxy.d.ts.map +1 -1
- package/dist/createTRPCUntypedClient.d.ts +4 -4
- package/dist/getFetch.d.ts +2 -2
- package/dist/{httpUtils-1a07b2e6.js → httpUtils-00c8b54e.js} +125 -125
- package/dist/index.d.ts +6 -6
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/internals/TRPCUntypedClient.d.ts +61 -61
- package/dist/internals/TRPCUntypedClient.d.ts.map +1 -1
- package/dist/internals/dataLoader.d.ts +17 -17
- package/dist/internals/dataLoader.d.ts.map +1 -1
- package/dist/internals/getAbortController.d.ts +3 -3
- package/dist/internals/retryDelay.d.ts +1 -1
- package/dist/internals/types.d.ts +75 -102
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/links/dedupeLink.d.ts +3 -3
- package/dist/links/httpBatchLink.d.ts +15 -15
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/httpFormDataLink.d.ts +1 -1
- package/dist/links/httpLink.d.ts +16 -16
- package/dist/links/httpLink.d.ts.map +1 -1
- package/dist/links/index.d.ts +7 -7
- package/dist/links/internals/createChain.d.ts +7 -7
- package/dist/links/internals/httpUtils.d.ts +59 -59
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/links/internals/isObject.d.ts +1 -1
- package/dist/links/loggerLink.d.ts +39 -39
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/retryLink.d.ts +5 -5
- package/dist/links/splitLink.d.ts +13 -13
- package/dist/links/types.d.ts +69 -69
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink.d.ts +28 -28
- package/dist/links/wsLink.d.ts.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/transformResult.d.ts +33 -33
- package/dist/shared/transformResult.d.ts.map +1 -1
- package/dist/{splitLink-aebd28df.js → splitLink-0df96fdc.js} +34 -34
- package/dist/{transformResult-fc4863b8.js → transformResult-ae8e970c.js} +80 -80
- package/package.json +6 -6
- package/src/TRPCClientError.ts +1 -1
- package/src/createTRPCClient.ts +1 -1
- package/src/createTRPCClientProxy.ts +1 -1
- package/src/internals/TRPCUntypedClient.ts +2 -2
- package/src/internals/types.ts +0 -39
- package/src/links/httpBatchLink.ts +2 -2
- package/src/links/httpFormDataLink.ts +1 -1
- package/src/links/httpLink.ts +2 -2
- package/src/links/retryLink.ts +1 -1
- package/src/links/types.ts +1 -1
- package/src/links/wsLink.ts +3 -3
- package/src/shared/transformResult.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpUtils.d.ts","sourceRoot":"","sources":["../../../src/links/internals/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,GACxB,uBAAuB,CAMzB;AAiBD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,QAAQ,EAAE,aAAa,CAAC;KACzB,CAAC;CACH;AAED,
|
|
1
|
+
{"version":3,"file":"httpUtils.d.ts","sourceRoot":"","sources":["../../../src/links/internals/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,CAAC;IAClB,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,GACxB,uBAAuB,CAMzB;AAiBD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,QAAQ,EAAE,aAAa,CAAC;KACzB,CAAC;CACH;AAED,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG,CAAC;IAAE,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAUjD,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAC1D,eAAe,GAAG;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,MAAM,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CACpB,IAAI,EAAE,sBAAsB,KACzB,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE9B,MAAM,MAAM,cAAc,GAAG;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAgBpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,sBAAsB,GAAG;IAC7B,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACnD,KACE,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAElC,eAAO,MAAM,iBAAiB,EAAE,SAO/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GACrD,cAAc,GAAG;IACf,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACnD,CAAC;AAEJ,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,GACvB,gBAAgB,CAAC,UAAU,CAAC,CA4C9B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
1
|
+
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
2
2
|
//# sourceMappingURL=isObject.d.ts.map
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
/// <reference lib="dom.iterable" />
|
|
2
|
-
import { AnyRouter } from '@trpc/server';
|
|
3
|
-
import { TRPCClientError } from '..';
|
|
4
|
-
import { Operation, OperationResultEnvelope, TRPCLink } from './types';
|
|
5
|
-
|
|
6
|
-
log: (...args: any[]) => void;
|
|
7
|
-
error: (...args: any[]) => void;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
direction: 'up';
|
|
11
|
-
}) | {
|
|
12
|
-
direction: 'down';
|
|
13
|
-
result: OperationResultEnvelope<unknown> | TRPCClientError<TRouter>;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Request was just initialized
|
|
19
|
-
*/
|
|
20
|
-
direction: 'up';
|
|
21
|
-
} | {
|
|
22
|
-
/**
|
|
23
|
-
* Request result
|
|
24
|
-
*/
|
|
25
|
-
direction: 'down';
|
|
26
|
-
result: OperationResultEnvelope<unknown> | TRPCClientError<TRouter>;
|
|
27
|
-
elapsedMs: number;
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
export interface LoggerLinkOptions<TRouter extends AnyRouter> {
|
|
31
|
-
logger?: LoggerLinkFn<TRouter>;
|
|
32
|
-
enabled?: EnabledFn<TRouter>;
|
|
33
|
-
/**
|
|
34
|
-
* Used in the built-in defaultLogger
|
|
35
|
-
*/
|
|
36
|
-
console?: ConsoleEsque;
|
|
37
|
-
}
|
|
38
|
-
export declare function loggerLink<TRouter extends AnyRouter = AnyRouter>(opts?: LoggerLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
39
|
-
export {};
|
|
1
|
+
/// <reference lib="dom.iterable" />
|
|
2
|
+
import { AnyRouter } from '@trpc/server';
|
|
3
|
+
import { TRPCClientError } from '..';
|
|
4
|
+
import { Operation, OperationResultEnvelope, TRPCLink } from './types';
|
|
5
|
+
type ConsoleEsque = {
|
|
6
|
+
log: (...args: any[]) => void;
|
|
7
|
+
error: (...args: any[]) => void;
|
|
8
|
+
};
|
|
9
|
+
type EnableFnOptions<TRouter extends AnyRouter> = (Operation & {
|
|
10
|
+
direction: 'up';
|
|
11
|
+
}) | {
|
|
12
|
+
direction: 'down';
|
|
13
|
+
result: OperationResultEnvelope<unknown> | TRPCClientError<TRouter>;
|
|
14
|
+
};
|
|
15
|
+
type EnabledFn<TRouter extends AnyRouter> = (opts: EnableFnOptions<TRouter>) => boolean;
|
|
16
|
+
type LoggerLinkFnOptions<TRouter extends AnyRouter> = Operation & ({
|
|
17
|
+
/**
|
|
18
|
+
* Request was just initialized
|
|
19
|
+
*/
|
|
20
|
+
direction: 'up';
|
|
21
|
+
} | {
|
|
22
|
+
/**
|
|
23
|
+
* Request result
|
|
24
|
+
*/
|
|
25
|
+
direction: 'down';
|
|
26
|
+
result: OperationResultEnvelope<unknown> | TRPCClientError<TRouter>;
|
|
27
|
+
elapsedMs: number;
|
|
28
|
+
});
|
|
29
|
+
type LoggerLinkFn<TRouter extends AnyRouter> = (opts: LoggerLinkFnOptions<TRouter>) => void;
|
|
30
|
+
export interface LoggerLinkOptions<TRouter extends AnyRouter> {
|
|
31
|
+
logger?: LoggerLinkFn<TRouter>;
|
|
32
|
+
enabled?: EnabledFn<TRouter>;
|
|
33
|
+
/**
|
|
34
|
+
* Used in the built-in defaultLogger
|
|
35
|
+
*/
|
|
36
|
+
console?: ConsoleEsque;
|
|
37
|
+
}
|
|
38
|
+
export declare function loggerLink<TRouter extends AnyRouter = AnyRouter>(opts?: LoggerLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
39
|
+
export {};
|
|
40
40
|
//# sourceMappingURL=loggerLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loggerLink.d.ts","sourceRoot":"","sources":["../../src/links/loggerLink.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvE,
|
|
1
|
+
{"version":3,"file":"loggerLink.d.ts","sourceRoot":"","sources":["../../src/links/loggerLink.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvE,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,eAAe,CAAC,OAAO,SAAS,SAAS,IAC1C,CAAC,SAAS,GAAG;IACX,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC,GACF;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;CACrE,CAAC;AACN,KAAK,SAAS,CAAC,OAAO,SAAS,SAAS,IAAI,CAC1C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,KAC3B,OAAO,CAAC;AAEb,KAAK,mBAAmB,CAAC,OAAO,SAAS,SAAS,IAAI,SAAS,GAC7D,CACI;IACE;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;CACjB,GACD;IACE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB,CACJ,CAAC;AAEJ,KAAK,YAAY,CAAC,OAAO,SAAS,SAAS,IAAI,CAC7C,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAC/B,IAAI,CAAC;AAOV,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,SAAS;IAC1D,MAAM,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AA+DD,wBAAgB,UAAU,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAC9D,IAAI,GAAE,iBAAiB,CAAC,OAAO,CAAM,GACpC,QAAQ,CAAC,OAAO,CAAC,CA2CnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AnyRouter } from '@trpc/server';
|
|
2
|
-
import { TRPCLink } from './types';
|
|
3
|
-
export declare function retryLink<TRouter extends AnyRouter = AnyRouter>(opts: {
|
|
4
|
-
attempts: number;
|
|
5
|
-
}): TRPCLink<TRouter>;
|
|
1
|
+
import { AnyRouter } from '@trpc/server';
|
|
2
|
+
import { TRPCLink } from './types';
|
|
3
|
+
export declare function retryLink<TRouter extends AnyRouter = AnyRouter>(opts: {
|
|
4
|
+
attempts: number;
|
|
5
|
+
}): TRPCLink<TRouter>;
|
|
6
6
|
//# sourceMappingURL=retryLink.d.ts.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { AnyRouter } from '@trpc/server';
|
|
2
|
-
import { Operation, TRPCLink } from './types';
|
|
3
|
-
export declare function splitLink<TRouter extends AnyRouter = AnyRouter>(opts: {
|
|
4
|
-
condition: (op: Operation) => boolean;
|
|
5
|
-
/**
|
|
6
|
-
* The link to execute next if the test function returns `true`.
|
|
7
|
-
*/
|
|
8
|
-
true: TRPCLink<TRouter> | TRPCLink<TRouter>[];
|
|
9
|
-
/**
|
|
10
|
-
* The link to execute next if the test function returns `false`.
|
|
11
|
-
*/
|
|
12
|
-
false: TRPCLink<TRouter> | TRPCLink<TRouter>[];
|
|
13
|
-
}): TRPCLink<TRouter>;
|
|
1
|
+
import { AnyRouter } from '@trpc/server';
|
|
2
|
+
import { Operation, TRPCLink } from './types';
|
|
3
|
+
export declare function splitLink<TRouter extends AnyRouter = AnyRouter>(opts: {
|
|
4
|
+
condition: (op: Operation) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* The link to execute next if the test function returns `true`.
|
|
7
|
+
*/
|
|
8
|
+
true: TRPCLink<TRouter> | TRPCLink<TRouter>[];
|
|
9
|
+
/**
|
|
10
|
+
* The link to execute next if the test function returns `false`.
|
|
11
|
+
*/
|
|
12
|
+
false: TRPCLink<TRouter> | TRPCLink<TRouter>[];
|
|
13
|
+
}): TRPCLink<TRouter>;
|
|
14
14
|
//# sourceMappingURL=splitLink.d.ts.map
|
package/dist/links/types.d.ts
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import { AnyRouter, CombinedDataTransformer, DataTransformer } from '@trpc/server';
|
|
2
|
-
import { Observable, Observer } from '@trpc/server/observable';
|
|
3
|
-
import { TRPCResultMessage, TRPCSuccessResponse } from '@trpc/server/rpc';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
/**
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
export
|
|
10
|
-
/**
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export
|
|
14
|
-
promise: Promise<TValue>;
|
|
15
|
-
cancel: CancelFn;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export
|
|
21
|
-
/**
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
export
|
|
25
|
-
id: number;
|
|
26
|
-
type: 'query' | 'mutation' | 'subscription';
|
|
27
|
-
input: TInput;
|
|
28
|
-
path: string;
|
|
29
|
-
context: OperationContext;
|
|
30
|
-
};
|
|
31
|
-
/**
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
|
-
export
|
|
35
|
-
/**
|
|
36
|
-
* The default `fetch` implementation has an overloaded signature. By convention this library
|
|
37
|
-
* only uses the overload taking a string and options object.
|
|
38
|
-
*/
|
|
39
|
-
export
|
|
40
|
-
export interface TRPCClientRuntime {
|
|
41
|
-
transformer: DataTransformer;
|
|
42
|
-
combinedTransformer: CombinedDataTransformer;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* @internal
|
|
46
|
-
*/
|
|
47
|
-
export interface OperationResultEnvelope<TOutput> {
|
|
48
|
-
result: TRPCSuccessResponse<TOutput>['result'] | TRPCResultMessage<TOutput>['result'];
|
|
49
|
-
context?: OperationContext;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @internal
|
|
53
|
-
*/
|
|
54
|
-
export
|
|
55
|
-
/**
|
|
56
|
-
* @internal
|
|
57
|
-
*/
|
|
58
|
-
export
|
|
59
|
-
/**
|
|
60
|
-
* @internal
|
|
61
|
-
*/
|
|
62
|
-
export
|
|
63
|
-
op: Operation<TInput>;
|
|
64
|
-
next: (op: Operation<TInput>) => OperationResultObservable<TRouter, TOutput>;
|
|
65
|
-
}) => OperationResultObservable<TRouter, TOutput>;
|
|
66
|
-
/**
|
|
67
|
-
* @public
|
|
68
|
-
*/
|
|
69
|
-
export
|
|
1
|
+
import { AnyRouter, CombinedDataTransformer, DataTransformer } from '@trpc/server';
|
|
2
|
+
import { Observable, Observer } from '@trpc/server/observable';
|
|
3
|
+
import { TRPCResultMessage, TRPCSuccessResponse } from '@trpc/server/rpc';
|
|
4
|
+
import { ResponseEsque } from '../internals/types';
|
|
5
|
+
import { TRPCClientError } from '../TRPCClientError';
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export type CancelFn = () => void;
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export type PromiseAndCancel<TValue> = {
|
|
14
|
+
promise: Promise<TValue>;
|
|
15
|
+
cancel: CancelFn;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export type OperationContext = Record<string, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export type Operation<TInput = unknown> = {
|
|
25
|
+
id: number;
|
|
26
|
+
type: 'query' | 'mutation' | 'subscription';
|
|
27
|
+
input: TInput;
|
|
28
|
+
path: string;
|
|
29
|
+
context: OperationContext;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export type HTTPHeaders = Record<string, string | string[] | undefined>;
|
|
35
|
+
/**
|
|
36
|
+
* The default `fetch` implementation has an overloaded signature. By convention this library
|
|
37
|
+
* only uses the overload taking a string and options object.
|
|
38
|
+
*/
|
|
39
|
+
export type TRPCFetch = (url: string, options?: RequestInit) => Promise<ResponseEsque>;
|
|
40
|
+
export interface TRPCClientRuntime {
|
|
41
|
+
transformer: DataTransformer;
|
|
42
|
+
combinedTransformer: CombinedDataTransformer;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
export interface OperationResultEnvelope<TOutput> {
|
|
48
|
+
result: TRPCSuccessResponse<TOutput>['result'] | TRPCResultMessage<TOutput>['result'];
|
|
49
|
+
context?: OperationContext;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export type OperationResultObservable<TRouter extends AnyRouter, TOutput> = Observable<OperationResultEnvelope<TOutput>, TRPCClientError<TRouter>>;
|
|
55
|
+
/**
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
export type OperationResultObserver<TRouter extends AnyRouter, TOutput> = Observer<OperationResultEnvelope<TOutput>, TRPCClientError<TRouter>>;
|
|
59
|
+
/**
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
export type OperationLink<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown> = (opts: {
|
|
63
|
+
op: Operation<TInput>;
|
|
64
|
+
next: (op: Operation<TInput>) => OperationResultObservable<TRouter, TOutput>;
|
|
65
|
+
}) => OperationResultObservable<TRouter, TOutput>;
|
|
66
|
+
/**
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
export type TRPCLink<TRouter extends AnyRouter> = (opts: TRPCClientRuntime) => OperationLink<TRouter>;
|
|
70
70
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/links/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/links/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI;IACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvD;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,MAAM,GAAG,OAAO,IAAI;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,eAAe,CAAC;IAE7B,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC9C,MAAM,EACF,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,CACnC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,aAAa,CACvB,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,IACf,CAAC,IAAI,EAAE;IACT,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC9E,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,OAAO,SAAS,SAAS,IAAI,CAChD,IAAI,EAAE,iBAAiB,KACpB,aAAa,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/links/wsLink.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { AnyRouter, inferRouterError } from '@trpc/server';
|
|
2
|
-
import { Observer, UnsubscribeFn } from '@trpc/server/observable';
|
|
3
|
-
import { TRPCResponseMessage } from '@trpc/server/rpc';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Operation, TRPCLink } from './types';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export interface WebSocketClientOptions {
|
|
10
|
-
url: string | (() => string);
|
|
11
|
-
WebSocket?: typeof WebSocket;
|
|
12
|
-
retryDelayMs?: typeof retryDelay;
|
|
13
|
-
onOpen?: () => void;
|
|
14
|
-
onClose?: (cause?: {
|
|
15
|
-
code?: number;
|
|
16
|
-
}) => void;
|
|
17
|
-
}
|
|
18
|
-
export declare function createWSClient(opts: WebSocketClientOptions): {
|
|
19
|
-
close: () => void;
|
|
20
|
-
request: (op: Operation, callbacks: WSCallbackObserver<AnyRouter, unknown>) => UnsubscribeFn;
|
|
21
|
-
getConnection(): WebSocket;
|
|
22
|
-
};
|
|
23
|
-
export
|
|
24
|
-
export interface WebSocketLinkOptions {
|
|
25
|
-
client: TRPCWebSocketClient;
|
|
26
|
-
}
|
|
27
|
-
export declare function wsLink<TRouter extends AnyRouter>(opts: WebSocketLinkOptions): TRPCLink<TRouter>;
|
|
28
|
-
export {};
|
|
1
|
+
import { AnyRouter, inferRouterError } from '@trpc/server';
|
|
2
|
+
import { Observer, UnsubscribeFn } from '@trpc/server/observable';
|
|
3
|
+
import { TRPCResponseMessage } from '@trpc/server/rpc';
|
|
4
|
+
import { retryDelay } from '../internals/retryDelay';
|
|
5
|
+
import { TRPCClientError } from '../TRPCClientError';
|
|
6
|
+
import { Operation, TRPCLink } from './types';
|
|
7
|
+
type WSCallbackResult<TRouter extends AnyRouter, TOutput> = TRPCResponseMessage<TOutput, inferRouterError<TRouter>>;
|
|
8
|
+
type WSCallbackObserver<TRouter extends AnyRouter, TOutput> = Observer<WSCallbackResult<TRouter, TOutput>, TRPCClientError<TRouter>>;
|
|
9
|
+
export interface WebSocketClientOptions {
|
|
10
|
+
url: string | (() => string);
|
|
11
|
+
WebSocket?: typeof WebSocket;
|
|
12
|
+
retryDelayMs?: typeof retryDelay;
|
|
13
|
+
onOpen?: () => void;
|
|
14
|
+
onClose?: (cause?: {
|
|
15
|
+
code?: number;
|
|
16
|
+
}) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function createWSClient(opts: WebSocketClientOptions): {
|
|
19
|
+
close: () => void;
|
|
20
|
+
request: (op: Operation, callbacks: WSCallbackObserver<AnyRouter, unknown>) => UnsubscribeFn;
|
|
21
|
+
getConnection(): WebSocket;
|
|
22
|
+
};
|
|
23
|
+
export type TRPCWebSocketClient = ReturnType<typeof createWSClient>;
|
|
24
|
+
export interface WebSocketLinkOptions {
|
|
25
|
+
client: TRPCWebSocketClient;
|
|
26
|
+
}
|
|
27
|
+
export declare function wsLink<TRouter extends AnyRouter>(opts: WebSocketLinkOptions): TRPCLink<TRouter>;
|
|
28
|
+
export {};
|
|
29
29
|
//# sourceMappingURL=wsLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["../../src/links/wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["../../src/links/wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAiB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAc,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAKL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,gBAAgB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,mBAAmB,CAC7E,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;AAEF,KAAK,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,QAAQ,CACpE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,eAAe,CAAC,OAAO,CAAC,CACzB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,sBAAsB;;kBAwNpC,SAAS,wDAA0B,aAAa;;EAqDtE;AACD,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AASD,wBAAgB,MAAM,CAAC,OAAO,SAAS,SAAS,EAC9C,IAAI,EAAE,oBAAoB,GACzB,QAAQ,CAAC,OAAO,CAAC,CA6CnB"}
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './transformResult';
|
|
1
|
+
export * from './transformResult';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import type { AnyRouter, inferRouterError } from '@trpc/server';
|
|
2
|
-
import type { TRPCResponse, TRPCResponseMessage } from '@trpc/server/rpc';
|
|
3
|
-
import type { TRPCClientRuntime } from '../links';
|
|
4
|
-
/** @internal */
|
|
5
|
-
declare function transformResultInner<TRouter extends AnyRouter, TOutput>(response: TRPCResponseMessage<TOutput, inferRouterError<TRouter>> | TRPCResponse<TOutput, inferRouterError<TRouter>>, runtime: TRPCClientRuntime): {
|
|
6
|
-
readonly ok: false;
|
|
7
|
-
readonly error: {
|
|
8
|
-
readonly error: inferRouterError<TRouter>;
|
|
9
|
-
readonly id?: import("@trpc/server/rpc").JSONRPC2.RequestId | undefined;
|
|
10
|
-
readonly jsonrpc?: "2.0" | undefined;
|
|
11
|
-
} | {
|
|
12
|
-
readonly error: inferRouterError<TRouter>;
|
|
13
|
-
readonly id: string | number | null;
|
|
14
|
-
readonly jsonrpc?: "2.0" | undefined;
|
|
15
|
-
};
|
|
16
|
-
readonly result?: undefined;
|
|
17
|
-
} | {
|
|
18
|
-
readonly ok: true;
|
|
19
|
-
readonly result: {
|
|
20
|
-
type: "started";
|
|
21
|
-
} | {
|
|
22
|
-
type: "stopped";
|
|
23
|
-
} | (import("@trpc/server/rpc").TRPCResult<TOutput> & {
|
|
24
|
-
type: "data";
|
|
25
|
-
});
|
|
26
|
-
readonly error?: undefined;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Transforms and validates that the result is a valid TRPCResponse
|
|
30
|
-
* @internal
|
|
31
|
-
*/
|
|
32
|
-
export declare function transformResult<TRouter extends AnyRouter, TOutput>(response: TRPCResponseMessage<TOutput, inferRouterError<TRouter>> | TRPCResponse<TOutput, inferRouterError<TRouter>>, runtime: TRPCClientRuntime): ReturnType<typeof transformResultInner>;
|
|
33
|
-
export {};
|
|
1
|
+
import type { AnyRouter, inferRouterError } from '@trpc/server';
|
|
2
|
+
import type { TRPCResponse, TRPCResponseMessage } from '@trpc/server/rpc';
|
|
3
|
+
import type { TRPCClientRuntime } from '../links';
|
|
4
|
+
/** @internal */
|
|
5
|
+
declare function transformResultInner<TRouter extends AnyRouter, TOutput>(response: TRPCResponseMessage<TOutput, inferRouterError<TRouter>> | TRPCResponse<TOutput, inferRouterError<TRouter>>, runtime: TRPCClientRuntime): {
|
|
6
|
+
readonly ok: false;
|
|
7
|
+
readonly error: {
|
|
8
|
+
readonly error: inferRouterError<TRouter>;
|
|
9
|
+
readonly id?: import("@trpc/server/rpc").JSONRPC2.RequestId | undefined;
|
|
10
|
+
readonly jsonrpc?: "2.0" | undefined;
|
|
11
|
+
} | {
|
|
12
|
+
readonly error: inferRouterError<TRouter>;
|
|
13
|
+
readonly id: string | number | null;
|
|
14
|
+
readonly jsonrpc?: "2.0" | undefined;
|
|
15
|
+
};
|
|
16
|
+
readonly result?: undefined;
|
|
17
|
+
} | {
|
|
18
|
+
readonly ok: true;
|
|
19
|
+
readonly result: {
|
|
20
|
+
type: "started";
|
|
21
|
+
} | {
|
|
22
|
+
type: "stopped";
|
|
23
|
+
} | (import("@trpc/server/rpc").TRPCResult<TOutput> & {
|
|
24
|
+
type: "data";
|
|
25
|
+
});
|
|
26
|
+
readonly error?: undefined;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Transforms and validates that the result is a valid TRPCResponse
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export declare function transformResult<TRouter extends AnyRouter, TOutput>(response: TRPCResponseMessage<TOutput, inferRouterError<TRouter>> | TRPCResponse<TOutput, inferRouterError<TRouter>>, runtime: TRPCClientRuntime): ReturnType<typeof transformResultInner>;
|
|
33
|
+
export {};
|
|
34
34
|
//# sourceMappingURL=transformResult.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformResult.d.ts","sourceRoot":"","sources":["../../src/shared/transformResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transformResult.d.ts","sourceRoot":"","sources":["../../src/shared/transformResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,gBAAgB;AAChB,iBAAS,oBAAoB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAC9D,QAAQ,EACJ,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GACvD,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EACpD,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;EAuB3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAChE,QAAQ,EACJ,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GACvD,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EACpD,OAAO,EAAE,iBAAiB,GACzB,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAqBzC"}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import { observable } from '@trpc/server/observable';
|
|
2
2
|
|
|
3
|
-
/** @internal */
|
|
4
|
-
function createChain(opts) {
|
|
5
|
-
return observable((observer) => {
|
|
6
|
-
function execute(index = 0, op = opts.op) {
|
|
7
|
-
const next = opts.links[index];
|
|
8
|
-
if (!next) {
|
|
9
|
-
throw new Error('No more links to execute - did you forget to add an ending link?');
|
|
10
|
-
}
|
|
11
|
-
const subscription = next({
|
|
12
|
-
op,
|
|
13
|
-
next(nextOp) {
|
|
14
|
-
const nextObserver = execute(index + 1, nextOp);
|
|
15
|
-
return nextObserver;
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
return subscription;
|
|
19
|
-
}
|
|
20
|
-
const obs$ = execute();
|
|
21
|
-
return obs$.subscribe(observer);
|
|
22
|
-
});
|
|
3
|
+
/** @internal */
|
|
4
|
+
function createChain(opts) {
|
|
5
|
+
return observable((observer) => {
|
|
6
|
+
function execute(index = 0, op = opts.op) {
|
|
7
|
+
const next = opts.links[index];
|
|
8
|
+
if (!next) {
|
|
9
|
+
throw new Error('No more links to execute - did you forget to add an ending link?');
|
|
10
|
+
}
|
|
11
|
+
const subscription = next({
|
|
12
|
+
op,
|
|
13
|
+
next(nextOp) {
|
|
14
|
+
const nextObserver = execute(index + 1, nextOp);
|
|
15
|
+
return nextObserver;
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
return subscription;
|
|
19
|
+
}
|
|
20
|
+
const obs$ = execute();
|
|
21
|
+
return obs$.subscribe(observer);
|
|
22
|
+
});
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
function asArray(value) {
|
|
26
|
-
return Array.isArray(value) ? value : [value];
|
|
27
|
-
}
|
|
28
|
-
function splitLink(opts) {
|
|
29
|
-
return (runtime) => {
|
|
30
|
-
const yes = asArray(opts.true).map((link) => link(runtime));
|
|
31
|
-
const no = asArray(opts.false).map((link) => link(runtime));
|
|
32
|
-
return (props) => {
|
|
33
|
-
return observable((observer) => {
|
|
34
|
-
const links = opts.condition(props.op) ? yes : no;
|
|
35
|
-
return createChain({ op: props.op, links }).subscribe(observer);
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
};
|
|
25
|
+
function asArray(value) {
|
|
26
|
+
return Array.isArray(value) ? value : [value];
|
|
27
|
+
}
|
|
28
|
+
function splitLink(opts) {
|
|
29
|
+
return (runtime) => {
|
|
30
|
+
const yes = asArray(opts.true).map((link) => link(runtime));
|
|
31
|
+
const no = asArray(opts.false).map((link) => link(runtime));
|
|
32
|
+
return (props) => {
|
|
33
|
+
return observable((observer) => {
|
|
34
|
+
const links = opts.condition(props.op) ? yes : no;
|
|
35
|
+
return createChain({ op: props.op, links }).subscribe(observer);
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export { createChain as c, splitLink as s };
|