@trpc/client 9.20.1 → 10.0.0-alpha.10

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.
Files changed (154) hide show
  1. package/dist/TRPCClientError-17b117e1.mjs +81 -0
  2. package/dist/TRPCClientError-ec6bd2ca.js +94 -0
  3. package/dist/{declarations/src/TRPCClientError.d.ts → TRPCClientError.d.ts} +29 -33
  4. package/dist/TRPCClientError.d.ts.map +1 -0
  5. package/dist/createChain-3b458753.js +27 -0
  6. package/dist/createChain-b7cb1f5a.mjs +25 -0
  7. package/dist/{declarations/src/createTRPCClient.d.ts → createTRPCClient.d.ts} +5 -6
  8. package/dist/createTRPCClient.d.ts.map +1 -0
  9. package/dist/{declarations/src/getFetch.d.ts → getFetch.d.ts} +1 -1
  10. package/dist/getFetch.d.ts.map +1 -0
  11. package/dist/httpUtils-1f9e4e3c.js +97 -0
  12. package/dist/httpUtils-c09d7b79.mjs +91 -0
  13. package/dist/{declarations/src/index.d.ts → index.d.ts} +4 -4
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +243 -0
  16. package/dist/index.mjs +233 -0
  17. package/dist/index.ts.js +1 -0
  18. package/dist/{declarations/src/internals → internals}/TRPCClient.d.ts +62 -61
  19. package/dist/internals/TRPCClient.d.ts.map +1 -0
  20. package/dist/{declarations/src/internals → internals}/dataLoader.d.ts +16 -16
  21. package/dist/internals/dataLoader.d.ts.map +1 -0
  22. package/dist/{declarations/src/internals → internals}/fetchHelpers.d.ts +2 -2
  23. package/dist/internals/fetchHelpers.d.ts.map +1 -0
  24. package/dist/{declarations/src/internals → internals}/retryDelay.d.ts +1 -1
  25. package/dist/internals/retryDelay.d.ts.map +1 -0
  26. package/dist/links/dedupeLink.d.ts +4 -0
  27. package/dist/links/dedupeLink.d.ts.map +1 -0
  28. package/dist/{declarations/src/links → links}/httpBatchLink.d.ts +7 -6
  29. package/dist/links/httpBatchLink.d.ts.map +1 -0
  30. package/dist/links/httpBatchLink.js +195 -0
  31. package/dist/links/httpBatchLink.mjs +191 -0
  32. package/dist/links/httpBatchLink.ts.js +1 -0
  33. package/dist/{declarations/src/links → links}/httpLink.d.ts +4 -3
  34. package/dist/links/httpLink.d.ts.map +1 -0
  35. package/dist/links/httpLink.js +44 -0
  36. package/dist/links/httpLink.mjs +40 -0
  37. package/dist/links/httpLink.ts.js +1 -0
  38. package/dist/links/httpUtils.d.ts +22 -0
  39. package/dist/links/httpUtils.d.ts.map +1 -0
  40. package/dist/links/internals/createChain.d.ts +8 -0
  41. package/dist/links/internals/createChain.d.ts.map +1 -0
  42. package/dist/links/internals/transformOperationResult.d.ts +16 -0
  43. package/dist/links/internals/transformOperationResult.d.ts.map +1 -0
  44. package/dist/{declarations/src/links → links}/loggerLink.d.ts +38 -37
  45. package/dist/links/loggerLink.d.ts.map +1 -0
  46. package/dist/links/loggerLink.js +107 -0
  47. package/dist/links/loggerLink.mjs +98 -0
  48. package/dist/links/loggerLink.ts.js +1 -0
  49. package/dist/links/retryLink.d.ts +6 -0
  50. package/dist/links/retryLink.d.ts.map +1 -0
  51. package/dist/links/splitLink.d.ts +14 -0
  52. package/dist/links/splitLink.d.ts.map +1 -0
  53. package/dist/links/splitLink.js +32 -0
  54. package/dist/links/splitLink.mjs +28 -0
  55. package/dist/links/splitLink.ts.js +1 -0
  56. package/dist/links/transformerLink.d.ts +4 -0
  57. package/dist/links/transformerLink.d.ts.map +1 -0
  58. package/dist/links/transformerLink.js +79 -0
  59. package/dist/links/transformerLink.mjs +71 -0
  60. package/dist/links/transformerLink.ts.js +1 -0
  61. package/dist/links/types.d.ts +39 -0
  62. package/dist/links/types.d.ts.map +1 -0
  63. package/dist/links/wsLink.d.ts +21 -0
  64. package/dist/links/wsLink.d.ts.map +1 -0
  65. package/dist/links/wsLink.js +385 -0
  66. package/dist/links/wsLink.mjs +370 -0
  67. package/dist/links/wsLink.ts.js +1 -0
  68. package/dist/rx.d.ts +11 -0
  69. package/dist/rx.d.ts.map +1 -0
  70. package/dist/rx.js +88 -0
  71. package/dist/rx.mjs +73 -0
  72. package/dist/rx.ts.js +1 -0
  73. package/links/httpBatchLink/index.d.ts +1 -0
  74. package/links/httpBatchLink/index.js +1 -0
  75. package/links/httpLink/index.d.ts +1 -0
  76. package/links/httpLink/index.js +1 -0
  77. package/links/loggerLink/index.d.ts +1 -0
  78. package/links/loggerLink/index.js +1 -0
  79. package/links/splitLink/index.d.ts +1 -0
  80. package/links/splitLink/index.js +1 -0
  81. package/links/transformerLink/index.d.ts +1 -0
  82. package/links/transformerLink/index.js +1 -0
  83. package/links/wsLink/index.d.ts +1 -0
  84. package/links/wsLink/index.js +1 -0
  85. package/package.json +53 -18
  86. package/src/TRPCClientError.ts +17 -21
  87. package/src/createTRPCClient.ts +4 -3
  88. package/src/index.ts +1 -1
  89. package/src/internals/TRPCClient.ts +78 -92
  90. package/src/internals/dataLoader.ts +1 -1
  91. package/src/links/dedupeLink.test.ts +134 -0
  92. package/src/links/dedupeLink.ts +54 -0
  93. package/src/links/httpBatchLink.ts +36 -46
  94. package/src/links/httpLink.ts +26 -37
  95. package/src/{internals/httpRequest.ts → links/httpUtils.ts} +30 -21
  96. package/src/links/internals/createChain.test.ts +132 -0
  97. package/src/links/internals/createChain.ts +31 -0
  98. package/src/links/internals/transformOperationResult.ts +25 -0
  99. package/src/links/loggerLink.ts +39 -22
  100. package/src/links/retryLink.ts +44 -14
  101. package/src/links/splitLink.test.ts +56 -0
  102. package/src/links/splitLink.ts +23 -38
  103. package/src/links/transformerLink.ts +74 -0
  104. package/src/links/types.ts +64 -0
  105. package/src/links/wsLink.ts +57 -77
  106. package/src/rx.ts +50 -0
  107. package/dist/TRPCClientError-09b8a26b.esm.js +0 -77
  108. package/dist/TRPCClientError-bfee2bf5.cjs.dev.js +0 -79
  109. package/dist/TRPCClientError-e9bf96e9.cjs.prod.js +0 -79
  110. package/dist/declarations/src/TRPCClientError.d.ts.map +0 -1
  111. package/dist/declarations/src/createTRPCClient.d.ts.map +0 -1
  112. package/dist/declarations/src/getFetch.d.ts.map +0 -1
  113. package/dist/declarations/src/index.d.ts.map +0 -1
  114. package/dist/declarations/src/internals/TRPCAbortError.d.ts +0 -4
  115. package/dist/declarations/src/internals/TRPCAbortError.d.ts.map +0 -1
  116. package/dist/declarations/src/internals/TRPCClient.d.ts.map +0 -1
  117. package/dist/declarations/src/internals/dataLoader.d.ts.map +0 -1
  118. package/dist/declarations/src/internals/executeChain.d.ts +0 -9
  119. package/dist/declarations/src/internals/executeChain.d.ts.map +0 -1
  120. package/dist/declarations/src/internals/fetchHelpers.d.ts.map +0 -1
  121. package/dist/declarations/src/internals/httpRequest.d.ts +0 -14
  122. package/dist/declarations/src/internals/httpRequest.d.ts.map +0 -1
  123. package/dist/declarations/src/internals/observable.d.ts +0 -18
  124. package/dist/declarations/src/internals/observable.d.ts.map +0 -1
  125. package/dist/declarations/src/internals/retryDelay.d.ts.map +0 -1
  126. package/dist/declarations/src/internals/transformRPCResponse.d.ts +0 -15
  127. package/dist/declarations/src/internals/transformRPCResponse.d.ts.map +0 -1
  128. package/dist/declarations/src/links/core.d.ts +0 -45
  129. package/dist/declarations/src/links/core.d.ts.map +0 -1
  130. package/dist/declarations/src/links/httpBatchLink.d.ts.map +0 -1
  131. package/dist/declarations/src/links/httpLink.d.ts.map +0 -1
  132. package/dist/declarations/src/links/loggerLink.d.ts.map +0 -1
  133. package/dist/declarations/src/links/splitLink.d.ts +0 -24
  134. package/dist/declarations/src/links/splitLink.d.ts.map +0 -1
  135. package/dist/declarations/src/links/wsLink.d.ts +0 -30
  136. package/dist/declarations/src/links/wsLink.d.ts.map +0 -1
  137. package/dist/transformRPCResponse-57e80136.cjs.dev.js +0 -133
  138. package/dist/transformRPCResponse-739c13d0.cjs.prod.js +0 -133
  139. package/dist/transformRPCResponse-f7f8b0e1.esm.js +0 -129
  140. package/dist/trpc-client.cjs.d.ts +0 -1
  141. package/dist/trpc-client.cjs.dev.js +0 -379
  142. package/dist/trpc-client.cjs.js +0 -7
  143. package/dist/trpc-client.cjs.prod.js +0 -379
  144. package/dist/trpc-client.esm.js +0 -374
  145. package/links/httpBatchLink/package.json +0 -4
  146. package/links/httpLink/package.json +0 -4
  147. package/links/loggerLink/package.json +0 -4
  148. package/links/splitLink/package.json +0 -4
  149. package/links/wsLink/package.json +0 -4
  150. package/src/internals/TRPCAbortError.ts +0 -7
  151. package/src/internals/executeChain.ts +0 -67
  152. package/src/internals/observable.ts +0 -89
  153. package/src/internals/transformRPCResponse.ts +0 -25
  154. package/src/links/core.ts +0 -71
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
+ var rxjs = require('rxjs');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
12
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+ var palette = {
18
+ query: ['72e3ff', '3fb0d8'],
19
+ mutation: ['c5a3fc', '904dfc'],
20
+ subscription: ['ff49e1', 'd83fbe']
21
+ };
22
+
23
+ // maybe this should be moved to it's own package
24
+ var defaultLogger = function defaultLogger() {
25
+ var c = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : console;
26
+ return function (props) {
27
+ var direction = props.direction,
28
+ input = props.input,
29
+ type = props.type,
30
+ path = props.path,
31
+ context = props.context,
32
+ id = props.id;
33
+
34
+ var _palette$type = _slicedToArray__default["default"](palette[type], 2),
35
+ light = _palette$type[0],
36
+ dark = _palette$type[1];
37
+
38
+ var css = "\n background-color: #".concat(direction === 'up' ? light : dark, "; \n color: ").concat(direction === 'up' ? 'black' : 'white', ";\n padding: 2px;\n ");
39
+ var parts = ['%c', direction === 'up' ? '>>' : '<<', type, "#".concat(id), "%c".concat(path, "%c"), '%O'];
40
+ var args = [css, "".concat(css, "; font-weight: bold;"), "".concat(css, "; font-weight: normal;")];
41
+
42
+ if (props.direction === 'up') {
43
+ args.push({
44
+ input: input,
45
+ context: context
46
+ });
47
+ } else {
48
+ args.push({
49
+ input: input,
50
+ result: props.result,
51
+ elapsedMs: props.elapsedMs,
52
+ context: context
53
+ });
54
+ }
55
+
56
+ var fn = props.direction === 'down' && props.result && (props.result instanceof Error || 'error' in props.result.data) ? 'error' : 'log';
57
+ c[fn].apply(null, [parts.join(' ')].concat(args));
58
+ };
59
+ };
60
+
61
+ function loggerLink() {
62
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
63
+ var _opts$enabled = opts.enabled,
64
+ enabled = _opts$enabled === void 0 ? function () {
65
+ return true;
66
+ } : _opts$enabled;
67
+ var _opts$logger = opts.logger,
68
+ logger = _opts$logger === void 0 ? defaultLogger(opts.console) : _opts$logger;
69
+ return function () {
70
+ return function (_ref) {
71
+ var op = _ref.op,
72
+ next = _ref.next;
73
+ return new rxjs.Observable(function (observer) {
74
+ // ->
75
+ enabled(_objectSpread(_objectSpread({}, op), {}, {
76
+ direction: 'up'
77
+ })) && logger(_objectSpread(_objectSpread({}, op), {}, {
78
+ direction: 'up'
79
+ }));
80
+ var requestStartTime = Date.now();
81
+
82
+ function logResult(result) {
83
+ var elapsedMs = Date.now() - requestStartTime;
84
+ enabled(_objectSpread(_objectSpread({}, op), {}, {
85
+ direction: 'down',
86
+ result: result
87
+ })) && logger(_objectSpread(_objectSpread({}, op), {}, {
88
+ direction: 'down',
89
+ elapsedMs: elapsedMs,
90
+ result: result
91
+ }));
92
+ }
93
+
94
+ return next(op).pipe(rxjs.tap({
95
+ next: function next(result) {
96
+ logResult(result);
97
+ },
98
+ error: function error(result) {
99
+ logResult(result);
100
+ }
101
+ })).subscribe(observer);
102
+ });
103
+ };
104
+ };
105
+ }
106
+
107
+ exports.loggerLink = loggerLink;
@@ -0,0 +1,98 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { Observable, tap } from 'rxjs';
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
+ var palette = {
9
+ query: ['72e3ff', '3fb0d8'],
10
+ mutation: ['c5a3fc', '904dfc'],
11
+ subscription: ['ff49e1', 'd83fbe']
12
+ };
13
+
14
+ // maybe this should be moved to it's own package
15
+ var defaultLogger = function defaultLogger() {
16
+ var c = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : console;
17
+ return function (props) {
18
+ var direction = props.direction,
19
+ input = props.input,
20
+ type = props.type,
21
+ path = props.path,
22
+ context = props.context,
23
+ id = props.id;
24
+
25
+ var _palette$type = _slicedToArray(palette[type], 2),
26
+ light = _palette$type[0],
27
+ dark = _palette$type[1];
28
+
29
+ var css = "\n background-color: #".concat(direction === 'up' ? light : dark, "; \n color: ").concat(direction === 'up' ? 'black' : 'white', ";\n padding: 2px;\n ");
30
+ var parts = ['%c', direction === 'up' ? '>>' : '<<', type, "#".concat(id), "%c".concat(path, "%c"), '%O'];
31
+ var args = [css, "".concat(css, "; font-weight: bold;"), "".concat(css, "; font-weight: normal;")];
32
+
33
+ if (props.direction === 'up') {
34
+ args.push({
35
+ input: input,
36
+ context: context
37
+ });
38
+ } else {
39
+ args.push({
40
+ input: input,
41
+ result: props.result,
42
+ elapsedMs: props.elapsedMs,
43
+ context: context
44
+ });
45
+ }
46
+
47
+ var fn = props.direction === 'down' && props.result && (props.result instanceof Error || 'error' in props.result.data) ? 'error' : 'log';
48
+ c[fn].apply(null, [parts.join(' ')].concat(args));
49
+ };
50
+ };
51
+
52
+ function loggerLink() {
53
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54
+ var _opts$enabled = opts.enabled,
55
+ enabled = _opts$enabled === void 0 ? function () {
56
+ return true;
57
+ } : _opts$enabled;
58
+ var _opts$logger = opts.logger,
59
+ logger = _opts$logger === void 0 ? defaultLogger(opts.console) : _opts$logger;
60
+ return function () {
61
+ return function (_ref) {
62
+ var op = _ref.op,
63
+ next = _ref.next;
64
+ return new Observable(function (observer) {
65
+ // ->
66
+ enabled(_objectSpread(_objectSpread({}, op), {}, {
67
+ direction: 'up'
68
+ })) && logger(_objectSpread(_objectSpread({}, op), {}, {
69
+ direction: 'up'
70
+ }));
71
+ var requestStartTime = Date.now();
72
+
73
+ function logResult(result) {
74
+ var elapsedMs = Date.now() - requestStartTime;
75
+ enabled(_objectSpread(_objectSpread({}, op), {}, {
76
+ direction: 'down',
77
+ result: result
78
+ })) && logger(_objectSpread(_objectSpread({}, op), {}, {
79
+ direction: 'down',
80
+ elapsedMs: elapsedMs,
81
+ result: result
82
+ }));
83
+ }
84
+
85
+ return next(op).pipe(tap({
86
+ next: function next(result) {
87
+ logResult(result);
88
+ },
89
+ error: function error(result) {
90
+ logResult(result);
91
+ }
92
+ })).subscribe(observer);
93
+ });
94
+ };
95
+ };
96
+ }
97
+
98
+ export { loggerLink };
@@ -0,0 +1 @@
1
+
@@ -0,0 +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>;
6
+ //# sourceMappingURL=retryLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryLink.d.ts","sourceRoot":"","sources":["../../src/links/retryLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,wBAAgB,SAAS,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAiDpB"}
@@ -0,0 +1,14 @@
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { TRPCLink, Operation } 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
+ //# sourceMappingURL=splitLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitLink.d.ts","sourceRoot":"","sources":["../../src/links/splitLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAM9C,wBAAgB,SAAS,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE;IACrE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,GAAG,QAAQ,CAAC,OAAO,CAAC,CAWpB"}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var rxjs = require('rxjs');
6
+ var createChain = require('../createChain-3b458753.js');
7
+
8
+ function asArray(value) {
9
+ return Array.isArray(value) ? value : [value];
10
+ }
11
+
12
+ function splitLink(opts) {
13
+ return function (rt) {
14
+ var yes = asArray(opts.true).map(function (link) {
15
+ return link(rt);
16
+ });
17
+ var no = asArray(opts.false).map(function (link) {
18
+ return link(rt);
19
+ });
20
+ return function (props) {
21
+ return new rxjs.Observable(function (observer) {
22
+ var links = opts.condition(props.op) ? yes : no;
23
+ return createChain.createChain({
24
+ op: props.op,
25
+ links: links
26
+ }).subscribe(observer);
27
+ });
28
+ };
29
+ };
30
+ }
31
+
32
+ exports.splitLink = splitLink;
@@ -0,0 +1,28 @@
1
+ import { Observable } from 'rxjs';
2
+ import { c as createChain } from '../createChain-b7cb1f5a.mjs';
3
+
4
+ function asArray(value) {
5
+ return Array.isArray(value) ? value : [value];
6
+ }
7
+
8
+ function splitLink(opts) {
9
+ return function (rt) {
10
+ var yes = asArray(opts.true).map(function (link) {
11
+ return link(rt);
12
+ });
13
+ var no = asArray(opts.false).map(function (link) {
14
+ return link(rt);
15
+ });
16
+ return function (props) {
17
+ return new Observable(function (observer) {
18
+ var links = opts.condition(props.op) ? yes : no;
19
+ return createChain({
20
+ op: props.op,
21
+ links: links
22
+ }).subscribe(observer);
23
+ });
24
+ };
25
+ };
26
+ }
27
+
28
+ export { splitLink };
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,4 @@
1
+ import { AnyRouter, ClientDataTransformerOptions } from '@trpc/server';
2
+ import { TRPCLink } from './types';
3
+ export declare function transformerLink<TRouter extends AnyRouter = AnyRouter>(transformer: ClientDataTransformerOptions): TRPCLink<TRouter>;
4
+ //# sourceMappingURL=transformerLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformerLink.d.ts","sourceRoot":"","sources":["../../src/links/transformerLink.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,4BAA4B,EAE7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAgCpD,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EACnE,WAAW,EAAE,4BAA4B,GACxC,QAAQ,CAAC,OAAO,CAAC,CAiCnB"}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var rxjs = require('rxjs');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
16
+ /**
17
+ * @internal
18
+ */
19
+ function transformOperationResult(result, transformer) {
20
+ if ('error' in result.data) {
21
+ return _objectSpread(_objectSpread({}, result), {}, {
22
+ data: _objectSpread(_objectSpread({}, result.data), {}, {
23
+ error: transformer.deserialize(result.data.error)
24
+ })
25
+ });
26
+ }
27
+
28
+ if (result.data.result.type !== 'data') {
29
+ return result;
30
+ }
31
+
32
+ return _objectSpread(_objectSpread({}, result), {}, {
33
+ data: _objectSpread(_objectSpread({}, result.data), {}, {
34
+ result: _objectSpread(_objectSpread({}, result.data.result), {}, {
35
+ data: transformer.deserialize(result.data.result.data)
36
+ })
37
+ })
38
+ });
39
+ }
40
+
41
+ function transformerLink(transformer) {
42
+ var _transformer = transformer ? 'input' in transformer ? {
43
+ serialize: transformer.input.serialize,
44
+ deserialize: transformer.output.deserialize
45
+ } : transformer : {
46
+ serialize: function serialize(data) {
47
+ return data;
48
+ },
49
+ deserialize: function deserialize(data) {
50
+ return data;
51
+ }
52
+ };
53
+
54
+ return function () {
55
+ return function (props) {
56
+ var input = _transformer.serialize(props.op.input);
57
+
58
+ return new rxjs.Observable(function (observer) {
59
+ var subscription = props.next(_objectSpread(_objectSpread({}, props.op), {}, {
60
+ input: input
61
+ })).subscribe({
62
+ next: function next(value) {
63
+ var transformed = transformOperationResult(value, _transformer);
64
+ observer.next(transformed);
65
+ },
66
+ error: function error(err) {
67
+ observer.error(err);
68
+ },
69
+ complete: function complete() {
70
+ observer.complete();
71
+ }
72
+ });
73
+ return subscription;
74
+ });
75
+ };
76
+ };
77
+ }
78
+
79
+ exports.transformerLink = transformerLink;
@@ -0,0 +1,71 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { Observable } from 'rxjs';
3
+
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+
8
+ /**
9
+ * @internal
10
+ */
11
+ function transformOperationResult(result, transformer) {
12
+ if ('error' in result.data) {
13
+ return _objectSpread(_objectSpread({}, result), {}, {
14
+ data: _objectSpread(_objectSpread({}, result.data), {}, {
15
+ error: transformer.deserialize(result.data.error)
16
+ })
17
+ });
18
+ }
19
+
20
+ if (result.data.result.type !== 'data') {
21
+ return result;
22
+ }
23
+
24
+ return _objectSpread(_objectSpread({}, result), {}, {
25
+ data: _objectSpread(_objectSpread({}, result.data), {}, {
26
+ result: _objectSpread(_objectSpread({}, result.data.result), {}, {
27
+ data: transformer.deserialize(result.data.result.data)
28
+ })
29
+ })
30
+ });
31
+ }
32
+
33
+ function transformerLink(transformer) {
34
+ var _transformer = transformer ? 'input' in transformer ? {
35
+ serialize: transformer.input.serialize,
36
+ deserialize: transformer.output.deserialize
37
+ } : transformer : {
38
+ serialize: function serialize(data) {
39
+ return data;
40
+ },
41
+ deserialize: function deserialize(data) {
42
+ return data;
43
+ }
44
+ };
45
+
46
+ return function () {
47
+ return function (props) {
48
+ var input = _transformer.serialize(props.op.input);
49
+
50
+ return new Observable(function (observer) {
51
+ var subscription = props.next(_objectSpread(_objectSpread({}, props.op), {}, {
52
+ input: input
53
+ })).subscribe({
54
+ next: function next(value) {
55
+ var transformed = transformOperationResult(value, _transformer);
56
+ observer.next(transformed);
57
+ },
58
+ error: function error(err) {
59
+ observer.error(err);
60
+ },
61
+ complete: function complete() {
62
+ observer.complete();
63
+ }
64
+ });
65
+ return subscription;
66
+ });
67
+ };
68
+ };
69
+ }
70
+
71
+ export { transformerLink };
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,39 @@
1
+ import { AnyRouter, inferRouterError, Dict } from '@trpc/server';
2
+ import { TRPCResponse } from '@trpc/server/rpc';
3
+ import { Observable, Observer } from 'rxjs';
4
+ export declare type CancelFn = () => void;
5
+ export declare type PromiseAndCancel<TValue> = {
6
+ promise: Promise<TValue>;
7
+ cancel: CancelFn;
8
+ };
9
+ export declare type OperationContext = Record<string, unknown>;
10
+ export declare type Operation<TInput = unknown> = {
11
+ id: number;
12
+ type: 'query' | 'mutation' | 'subscription';
13
+ input: TInput;
14
+ path: string;
15
+ context?: OperationContext;
16
+ };
17
+ export declare type HTTPHeaders = Dict<string | string[]>;
18
+ /**
19
+ * The default `fetch` implementation has an overloaded signature. By convention this library
20
+ * only uses the overload taking a string and options object.
21
+ */
22
+ export declare type TRPCFetch = (url: string, options?: RequestInit) => Promise<Response>;
23
+ export interface LinkRuntime {
24
+ headers: () => HTTPHeaders | Promise<HTTPHeaders>;
25
+ fetch: TRPCFetch;
26
+ AbortController?: typeof AbortController;
27
+ }
28
+ export interface OperationResult<TRouter extends AnyRouter, TOutput> {
29
+ data: TRPCResponse<TOutput, inferRouterError<TRouter>>;
30
+ context?: OperationContext;
31
+ }
32
+ export declare type OperationResultObservable<TRouter extends AnyRouter, TOutput> = Observable<OperationResult<TRouter, TOutput>>;
33
+ export declare type OperationResultObserver<TRouter extends AnyRouter, TOutput> = Observer<OperationResult<TRouter, TOutput>>;
34
+ export declare type OperationLink<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown> = (opts: {
35
+ op: Operation<TInput>;
36
+ next: (op: Operation<TInput>) => OperationResultObservable<TRouter, TOutput>;
37
+ }) => OperationResultObservable<TRouter, TOutput>;
38
+ export declare type TRPCLink<TRouter extends AnyRouter> = (opts: LinkRuntime) => OperationLink<TRouter>;
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/links/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE5C,oBAAY,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC,oBAAY,gBAAgB,CAAC,MAAM,IAAI;IACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvD,oBAAY,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,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,oBAAY,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAElD;;;GAGG;AACH,oBAAY,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO;IACjE,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,oBAAY,yBAAyB,CACnC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAElD,oBAAY,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhD,oBAAY,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,oBAAY,QAAQ,CAAC,OAAO,SAAS,SAAS,IAAI,CAChD,IAAI,EAAE,WAAW,KACd,aAAa,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { retryDelay } from '../internals/retryDelay';
3
+ import { Operation, OperationResultObserver, TRPCLink } from './types';
4
+ declare type UnsubscribeFn = () => void;
5
+ export interface WebSocketClientOptions {
6
+ url: string;
7
+ WebSocket?: WebSocket;
8
+ retryDelayMs?: typeof retryDelay;
9
+ }
10
+ export declare function createWSClient(opts: WebSocketClientOptions): {
11
+ close: () => void;
12
+ request: (op: Operation, callbacks: OperationResultObserver<AnyRouter<any>, unknown>) => UnsubscribeFn;
13
+ getConnection(): WebSocket;
14
+ };
15
+ export declare type TRPCWebSocketClient = ReturnType<typeof createWSClient>;
16
+ export interface WebSocketLinkOptions {
17
+ client: TRPCWebSocketClient;
18
+ }
19
+ export declare function wsLink<TRouter extends AnyRouter>(opts: WebSocketLinkOptions): TRPCLink<TRouter>;
20
+ export {};
21
+ //# sourceMappingURL=wsLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["../../src/links/wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAOxD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvE,aAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAChC,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;;kBA8LpC,SAAS,kEAA0B,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,CAkDnB"}