@trpc/client 11.0.0-alpha-tmp-subscription-connection-state.489 → 11.0.0-alpha-tmp-12-06-react.667

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 (97) hide show
  1. package/dist/TRPCClientError.d.ts +1 -1
  2. package/dist/TRPCClientError.d.ts.map +1 -1
  3. package/dist/TRPCClientError.js +19 -1
  4. package/dist/TRPCClientError.mjs +19 -1
  5. package/dist/bundle-analysis.json +118 -92
  6. package/dist/createTRPCClient.d.ts +3 -2
  7. package/dist/createTRPCClient.d.ts.map +1 -1
  8. package/dist/createTRPCClient.js +1 -1
  9. package/dist/createTRPCClient.mjs +1 -1
  10. package/dist/index.js +6 -6
  11. package/dist/index.mjs +2 -2
  12. package/dist/internals/TRPCUntypedClient.d.ts +5 -4
  13. package/dist/internals/TRPCUntypedClient.d.ts.map +1 -1
  14. package/dist/internals/TRPCUntypedClient.js +42 -12
  15. package/dist/internals/TRPCUntypedClient.mjs +42 -12
  16. package/dist/internals/inputWithTrackedEventId.d.ts +2 -0
  17. package/dist/internals/inputWithTrackedEventId.d.ts.map +1 -0
  18. package/dist/internals/inputWithTrackedEventId.js +16 -0
  19. package/dist/internals/inputWithTrackedEventId.mjs +14 -0
  20. package/dist/internals/signals.d.ts +15 -0
  21. package/dist/internals/signals.d.ts.map +1 -0
  22. package/dist/internals/signals.js +47 -0
  23. package/dist/internals/signals.mjs +44 -0
  24. package/dist/internals/transformer.d.ts +2 -2
  25. package/dist/internals/types.d.ts +1 -1
  26. package/dist/internals/types.d.ts.map +1 -1
  27. package/dist/links/HTTPBatchLinkOptions.d.ts +1 -1
  28. package/dist/links/httpBatchLink.d.ts.map +1 -1
  29. package/dist/links/httpBatchLink.js +4 -3
  30. package/dist/links/httpBatchLink.mjs +5 -4
  31. package/dist/links/httpBatchStreamLink.d.ts.map +1 -1
  32. package/dist/links/httpBatchStreamLink.js +6 -4
  33. package/dist/links/httpBatchStreamLink.mjs +7 -5
  34. package/dist/links/httpLink.d.ts +2 -2
  35. package/dist/links/httpLink.js +3 -3
  36. package/dist/links/httpLink.mjs +3 -3
  37. package/dist/links/httpSubscriptionLink.d.ts +11 -6
  38. package/dist/links/httpSubscriptionLink.d.ts.map +1 -1
  39. package/dist/links/httpSubscriptionLink.js +130 -98
  40. package/dist/links/httpSubscriptionLink.mjs +132 -100
  41. package/dist/links/internals/contentTypes.d.ts +2 -2
  42. package/dist/links/internals/contentTypes.d.ts.map +1 -1
  43. package/dist/links/internals/httpUtils.d.ts +1 -8
  44. package/dist/links/internals/httpUtils.d.ts.map +1 -1
  45. package/dist/links/internals/httpUtils.js +1 -30
  46. package/dist/links/internals/httpUtils.mjs +2 -30
  47. package/dist/links/internals/subscriptions.d.ts +20 -0
  48. package/dist/links/internals/subscriptions.d.ts.map +1 -0
  49. package/dist/links/internals/urlWithConnectionParams.d.ts +2 -1
  50. package/dist/links/internals/urlWithConnectionParams.d.ts.map +1 -1
  51. package/dist/links/internals/urlWithConnectionParams.js +3 -2
  52. package/dist/links/internals/urlWithConnectionParams.mjs +3 -2
  53. package/dist/links/loggerLink.d.ts +5 -5
  54. package/dist/links/loggerLink.d.ts.map +1 -1
  55. package/dist/links/loggerLink.js +25 -21
  56. package/dist/links/loggerLink.mjs +25 -21
  57. package/dist/links/retryLink.d.ts +29 -0
  58. package/dist/links/retryLink.d.ts.map +1 -0
  59. package/dist/links/retryLink.js +65 -0
  60. package/dist/links/retryLink.mjs +63 -0
  61. package/dist/links/types.d.ts +4 -23
  62. package/dist/links/types.d.ts.map +1 -1
  63. package/dist/links/wsLink.d.ts +49 -5
  64. package/dist/links/wsLink.d.ts.map +1 -1
  65. package/dist/links/wsLink.js +210 -155
  66. package/dist/links/wsLink.mjs +211 -156
  67. package/dist/links.d.ts +1 -0
  68. package/dist/links.d.ts.map +1 -1
  69. package/dist/unstable-internals.d.ts +1 -0
  70. package/dist/unstable-internals.d.ts.map +1 -1
  71. package/package.json +14 -11
  72. package/src/TRPCClientError.ts +1 -1
  73. package/src/createTRPCClient.ts +28 -23
  74. package/src/internals/TRPCUntypedClient.ts +26 -15
  75. package/src/internals/inputWithTrackedEventId.ts +15 -0
  76. package/src/internals/signals.ts +54 -0
  77. package/src/internals/transformer.ts +2 -2
  78. package/src/internals/types.ts +1 -1
  79. package/src/links/HTTPBatchLinkOptions.ts +1 -1
  80. package/src/links/httpBatchLink.ts +3 -3
  81. package/src/links/httpBatchStreamLink.ts +7 -4
  82. package/src/links/httpLink.ts +2 -2
  83. package/src/links/httpSubscriptionLink.ts +172 -123
  84. package/src/links/internals/httpUtils.ts +1 -41
  85. package/src/links/internals/subscriptions.ts +26 -0
  86. package/src/links/internals/urlWithConnectionParams.ts +8 -2
  87. package/src/links/loggerLink.ts +21 -9
  88. package/src/links/retryLink.ts +101 -0
  89. package/src/links/types.ts +8 -46
  90. package/src/links/wsLink.ts +276 -173
  91. package/src/links.ts +1 -1
  92. package/src/unstable-internals.ts +1 -0
  93. package/dist/links/internals/retryLink.d.ts +0 -9
  94. package/dist/links/internals/retryLink.d.ts.map +0 -1
  95. package/dist/links/types.js +0 -7
  96. package/dist/links/types.mjs +0 -5
  97. package/src/links/internals/retryLink.ts +0 -53
@@ -4,6 +4,19 @@ var observable = require('@trpc/server/observable');
4
4
  var createChain = require('../links/internals/createChain.js');
5
5
  var TRPCClientError = require('../TRPCClientError.js');
6
6
 
7
+ function _define_property(obj, key, value) {
8
+ if (key in obj) {
9
+ Object.defineProperty(obj, key, {
10
+ value: value,
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true
14
+ });
15
+ } else {
16
+ obj[key] = value;
17
+ }
18
+ return obj;
19
+ }
7
20
  class TRPCUntypedClient {
8
21
  $request(opts) {
9
22
  const chain$ = createChain.createChain({
@@ -49,21 +62,35 @@ class TRPCUntypedClient {
49
62
  type: 'subscription',
50
63
  path,
51
64
  input,
52
- context: opts?.context,
53
- signal: null
65
+ context: opts.context,
66
+ signal: opts.signal
54
67
  });
55
68
  return observable$.subscribe({
56
69
  next (envelope) {
57
- if (envelope.result.type === 'started') {
58
- opts.onStarted?.({
59
- context: envelope.context
60
- });
61
- } else if (envelope.result.type === 'stopped') {
62
- opts.onStopped?.();
63
- } else if (envelope.result.type === 'state') {
64
- opts.onStateChange?.(envelope.result);
65
- } else {
66
- opts.onData?.(envelope.result.data);
70
+ switch(envelope.result.type){
71
+ case 'state':
72
+ {
73
+ opts.onConnectionStateChange?.(envelope.result);
74
+ break;
75
+ }
76
+ case 'started':
77
+ {
78
+ opts.onStarted?.({
79
+ context: envelope.context
80
+ });
81
+ break;
82
+ }
83
+ case 'stopped':
84
+ {
85
+ opts.onStopped?.();
86
+ break;
87
+ }
88
+ case 'data':
89
+ case undefined:
90
+ {
91
+ opts.onData?.(envelope.result.data);
92
+ break;
93
+ }
67
94
  }
68
95
  },
69
96
  error (err) {
@@ -75,6 +102,9 @@ class TRPCUntypedClient {
75
102
  });
76
103
  }
77
104
  constructor(opts){
105
+ _define_property(this, "links", void 0);
106
+ _define_property(this, "runtime", void 0);
107
+ _define_property(this, "requestId", void 0);
78
108
  this.requestId = 0;
79
109
  this.runtime = {};
80
110
  // Initialize the links
@@ -2,6 +2,19 @@ import { share, observableToPromise } from '@trpc/server/observable';
2
2
  import { createChain } from '../links/internals/createChain.mjs';
3
3
  import { TRPCClientError } from '../TRPCClientError.mjs';
4
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
+ }
5
18
  class TRPCUntypedClient {
6
19
  $request(opts) {
7
20
  const chain$ = createChain({
@@ -47,21 +60,35 @@ class TRPCUntypedClient {
47
60
  type: 'subscription',
48
61
  path,
49
62
  input,
50
- context: opts?.context,
51
- signal: null
63
+ context: opts.context,
64
+ signal: opts.signal
52
65
  });
53
66
  return observable$.subscribe({
54
67
  next (envelope) {
55
- if (envelope.result.type === 'started') {
56
- opts.onStarted?.({
57
- context: envelope.context
58
- });
59
- } else if (envelope.result.type === 'stopped') {
60
- opts.onStopped?.();
61
- } else if (envelope.result.type === 'state') {
62
- opts.onStateChange?.(envelope.result);
63
- } else {
64
- opts.onData?.(envelope.result.data);
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
+ }
65
92
  }
66
93
  },
67
94
  error (err) {
@@ -73,6 +100,9 @@ class TRPCUntypedClient {
73
100
  });
74
101
  }
75
102
  constructor(opts){
103
+ _define_property(this, "links", void 0);
104
+ _define_property(this, "runtime", void 0);
105
+ _define_property(this, "requestId", void 0);
76
106
  this.requestId = 0;
77
107
  this.runtime = {};
78
108
  // Initialize the links
@@ -0,0 +1,2 @@
1
+ export declare function inputWithTrackedEventId(input: unknown, lastEventId: string | undefined): unknown;
2
+ //# sourceMappingURL=inputWithTrackedEventId.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,16 @@
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;
@@ -0,0 +1,14 @@
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 };
@@ -0,0 +1,15 @@
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
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,47 @@
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
+
46
+ exports.allAbortSignals = allAbortSignals;
47
+ exports.raceAbortSignals = raceAbortSignals;
@@ -0,0 +1,44 @@
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
+
44
+ export { allAbortSignals, raceAbortSignals };
@@ -10,7 +10,7 @@ type TransformerOptionYes = {
10
10
  * Data transformer
11
11
  *
12
12
  * You must use the same transformer on the backend and frontend
13
- * @link https://trpc.io/docs/v11/data-transformers
13
+ * @see https://trpc.io/docs/v11/data-transformers
14
14
  **/
15
15
  transformer: DataTransformerOptions;
16
16
  };
@@ -19,7 +19,7 @@ type TransformerOptionNo = {
19
19
  * Data transformer
20
20
  *
21
21
  * You must use the same transformer on the backend and frontend
22
- * @link https://trpc.io/docs/v11/data-transformers
22
+ * @see https://trpc.io/docs/v11/data-transformers
23
23
  **/
24
24
  transformer?: TypeError<'You must define a transformer on your your `initTRPC`-object first'>;
25
25
  };
@@ -37,7 +37,7 @@ export interface RequestInitEsque {
37
37
  /**
38
38
  * Sets the request's signal.
39
39
  */
40
- signal?: AbortSignal | null;
40
+ signal?: AbortSignal | undefined;
41
41
  }
42
42
  /**
43
43
  * A subset of the standard ReadableStream properties needed by tRPC internally.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,WAAW,GAAG,GAAG,GAAG,MAAM,EACjC,IAAI,CAAC,EAAE,WAAW,GAAG,gBAAgB,KAClC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,IAAI,CAAC,EAAE,yBAAyB,KAC7B,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CACA,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,yBAAyB,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,GAAG,sBAAsB,GAAG,IAAI,CAAC;IAC1E;;;;;OAKG;IACH,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,WAAW,GAAG,GAAG,GAAG,MAAM,EACjC,IAAI,CAAC,EAAE,WAAW,GAAG,gBAAgB,KAClC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,IAAI,CAAC,EAAE,yBAAyB,KAC7B,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,CACA,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,yBAAyB,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,GAAG,sBAAsB,GAAG,IAAI,CAAC;IAC1E;;;;;OAKG;IACH,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC"}
@@ -6,7 +6,7 @@ export type HTTPBatchLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOpt
6
6
  maxURLLength?: number;
7
7
  /**
8
8
  * Headers to be set on outgoing requests or a callback that of said headers
9
- * @link http://trpc.io/docs/client/headers
9
+ * @see http://trpc.io/docs/client/headers
10
10
  */
11
11
  headers?: HTTPHeaders | ((opts: {
12
12
  opList: NonEmptyArray<Operation>;
@@ -1 +1 @@
1
- {"version":3,"file":"httpBatchLink.d.ts","sourceRoot":"","sources":["../../src/links/httpBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAO7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAQnE,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,SAAS,SAAS,EACrD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC/D,QAAQ,CAAC,OAAO,CAAC,CAkHnB"}
1
+ {"version":3,"file":"httpBatchLink.d.ts","sourceRoot":"","sources":["../../src/links/httpBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAQ7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAOnE,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,SAAS,SAAS,EACrD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC/D,QAAQ,CAAC,OAAO,CAAC,CAkHnB"}
@@ -3,6 +3,7 @@
3
3
  var observable = require('@trpc/server/observable');
4
4
  var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
5
5
  var dataLoader = require('../internals/dataLoader.js');
6
+ var signals = require('../internals/signals.js');
6
7
  var TRPCClientError = require('../TRPCClientError.js');
7
8
  var httpUtils = require('./internals/httpUtils.js');
8
9
 
@@ -33,7 +34,7 @@ var httpUtils = require('./internals/httpUtils.js');
33
34
  async fetch (batchOps) {
34
35
  const path = batchOps.map((op)=>op.path).join(',');
35
36
  const inputs = batchOps.map((op)=>op.input);
36
- const ac = httpUtils.mergeAbortSignals(batchOps);
37
+ const signal = signals.allAbortSignals(...batchOps.map((op)=>op.signal));
37
38
  const res = await httpUtils.jsonHttpRequester({
38
39
  ...resolvedOpts,
39
40
  path,
@@ -50,7 +51,7 @@ var httpUtils = require('./internals/httpUtils.js');
50
51
  }
51
52
  return opts.headers;
52
53
  },
53
- signal: ac.signal
54
+ signal
54
55
  });
55
56
  const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(()=>res.json);
56
57
  const result = resJSON.map((item)=>({
@@ -67,7 +68,7 @@ var httpUtils = require('./internals/httpUtils.js');
67
68
  query,
68
69
  mutation
69
70
  };
70
- return ({ op })=>{
71
+ return ({ op })=>{
71
72
  return observable.observable((observer)=>{
72
73
  /* istanbul ignore if -- @preserve */ if (op.type === 'subscription') {
73
74
  throw new Error('Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`');
@@ -1,8 +1,9 @@
1
1
  import { observable } from '@trpc/server/observable';
2
2
  import { transformResult } from '@trpc/server/unstable-core-do-not-import';
3
3
  import { dataLoader } from '../internals/dataLoader.mjs';
4
+ import { allAbortSignals } from '../internals/signals.mjs';
4
5
  import { TRPCClientError } from '../TRPCClientError.mjs';
5
- import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, jsonHttpRequester } from './internals/httpUtils.mjs';
6
+ import { resolveHTTPLinkOptions, getUrl, jsonHttpRequester } from './internals/httpUtils.mjs';
6
7
 
7
8
  /**
8
9
  * @see https://trpc.io/docs/client/links/httpBatchLink
@@ -31,7 +32,7 @@ import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, jsonHttpRequester }
31
32
  async fetch (batchOps) {
32
33
  const path = batchOps.map((op)=>op.path).join(',');
33
34
  const inputs = batchOps.map((op)=>op.input);
34
- const ac = mergeAbortSignals(batchOps);
35
+ const signal = allAbortSignals(...batchOps.map((op)=>op.signal));
35
36
  const res = await jsonHttpRequester({
36
37
  ...resolvedOpts,
37
38
  path,
@@ -48,7 +49,7 @@ import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, jsonHttpRequester }
48
49
  }
49
50
  return opts.headers;
50
51
  },
51
- signal: ac.signal
52
+ signal
52
53
  });
53
54
  const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(()=>res.json);
54
55
  const result = resJSON.map((item)=>({
@@ -65,7 +66,7 @@ import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, jsonHttpRequester }
65
66
  query,
66
67
  mutation
67
68
  };
68
- return ({ op })=>{
69
+ return ({ op })=>{
69
70
  return observable((observer)=>{
70
71
  /* istanbul ignore if -- @preserve */ if (op.type === 'subscription') {
71
72
  throw new Error('Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`');
@@ -1 +1 @@
1
- {"version":3,"file":"httpBatchStreamLink.d.ts","sourceRoot":"","sources":["../../src/links/httpBatchStreamLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAG7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAM7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AASnE,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,0BAA0B,CAAC,KAAK,SAAS,YAAY,IAC/D,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,SAAS,SAAS,EACpE,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GACrE,QAAQ,CAAC,OAAO,CAAC,CA6JnB"}
1
+ {"version":3,"file":"httpBatchStreamLink.d.ts","sourceRoot":"","sources":["../../src/links/httpBatchStreamLink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAG7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAO7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAQnE,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,0BAA0B,CAAC,KAAK,SAAS,YAAY,IAC/D,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,SAAS,SAAS,EACpE,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GACrE,QAAQ,CAAC,OAAO,CAAC,CAgKnB"}
@@ -3,6 +3,7 @@
3
3
  var observable = require('@trpc/server/observable');
4
4
  var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
5
5
  var dataLoader = require('../internals/dataLoader.js');
6
+ var signals = require('../internals/signals.js');
6
7
  var TRPCClientError = require('../TRPCClientError.js');
7
8
  var httpUtils = require('./internals/httpUtils.js');
8
9
 
@@ -37,10 +38,11 @@ var httpUtils = require('./internals/httpUtils.js');
37
38
  async fetch (batchOps) {
38
39
  const path = batchOps.map((op)=>op.path).join(',');
39
40
  const inputs = batchOps.map((op)=>op.input);
40
- const ac = httpUtils.mergeAbortSignals(batchOps);
41
+ const batchSignals = signals.allAbortSignals(...batchOps.map((op)=>op.signal));
42
+ const abortController = new AbortController();
41
43
  const responsePromise = httpUtils.fetchHTTPResponse({
42
44
  ...resolvedOpts,
43
- signal: ac.signal,
45
+ signal: signals.raceAbortSignals(batchSignals, abortController.signal),
44
46
  type,
45
47
  contentTypeHeader: 'application/json',
46
48
  trpcAcceptHeader: 'application/jsonl',
@@ -72,7 +74,7 @@ var httpUtils = require('./internals/httpUtils.js');
72
74
  error
73
75
  });
74
76
  },
75
- abortController: ac
77
+ abortController
76
78
  });
77
79
  const promises = Object.keys(batchOps).map(async (key)=>{
78
80
  let json = await Promise.resolve(head[key]);
@@ -104,7 +106,7 @@ var httpUtils = require('./internals/httpUtils.js');
104
106
  query,
105
107
  mutation
106
108
  };
107
- return ({ op })=>{
109
+ return ({ op })=>{
108
110
  return observable.observable((observer)=>{
109
111
  /* istanbul ignore if -- @preserve */ if (op.type === 'subscription') {
110
112
  throw new Error('Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`');
@@ -1,8 +1,9 @@
1
1
  import { observable } from '@trpc/server/observable';
2
2
  import { jsonlStreamConsumer } from '@trpc/server/unstable-core-do-not-import';
3
3
  import { dataLoader } from '../internals/dataLoader.mjs';
4
+ import { allAbortSignals, raceAbortSignals } from '../internals/signals.mjs';
4
5
  import { TRPCClientError } from '../TRPCClientError.mjs';
5
- import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, fetchHTTPResponse, getBody } from './internals/httpUtils.mjs';
6
+ import { resolveHTTPLinkOptions, getUrl, fetchHTTPResponse, getBody } from './internals/httpUtils.mjs';
6
7
 
7
8
  /**
8
9
  * @see https://trpc.io/docs/client/links/httpBatchStreamLink
@@ -35,10 +36,11 @@ import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, fetchHTTPResponse, g
35
36
  async fetch (batchOps) {
36
37
  const path = batchOps.map((op)=>op.path).join(',');
37
38
  const inputs = batchOps.map((op)=>op.input);
38
- const ac = mergeAbortSignals(batchOps);
39
+ const batchSignals = allAbortSignals(...batchOps.map((op)=>op.signal));
40
+ const abortController = new AbortController();
39
41
  const responsePromise = fetchHTTPResponse({
40
42
  ...resolvedOpts,
41
- signal: ac.signal,
43
+ signal: raceAbortSignals(batchSignals, abortController.signal),
42
44
  type,
43
45
  contentTypeHeader: 'application/json',
44
46
  trpcAcceptHeader: 'application/jsonl',
@@ -70,7 +72,7 @@ import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, fetchHTTPResponse, g
70
72
  error
71
73
  });
72
74
  },
73
- abortController: ac
75
+ abortController
74
76
  });
75
77
  const promises = Object.keys(batchOps).map(async (key)=>{
76
78
  let json = await Promise.resolve(head[key]);
@@ -102,7 +104,7 @@ import { resolveHTTPLinkOptions, getUrl, mergeAbortSignals, fetchHTTPResponse, g
102
104
  query,
103
105
  mutation
104
106
  };
105
- return ({ op })=>{
107
+ return ({ op })=>{
106
108
  return observable((observer)=>{
107
109
  /* istanbul ignore if -- @preserve */ if (op.type === 'subscription') {
108
110
  throw new Error('Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`');
@@ -4,14 +4,14 @@ import { type HTTPHeaders, type Operation, type TRPCLink } from './types';
4
4
  export type HTTPLinkOptions<TRoot extends AnyClientTypes> = HTTPLinkBaseOptions<TRoot> & {
5
5
  /**
6
6
  * Headers to be set on outgoing requests or a callback that of said headers
7
- * @link http://trpc.io/docs/client/headers
7
+ * @see http://trpc.io/docs/client/headers
8
8
  */
9
9
  headers?: HTTPHeaders | ((opts: {
10
10
  op: Operation;
11
11
  }) => HTTPHeaders | Promise<HTTPHeaders>);
12
12
  };
13
13
  /**
14
- * @link https://trpc.io/docs/client/links/httpLink
14
+ * @see https://trpc.io/docs/client/links/httpLink
15
15
  */
16
16
  export declare function httpLink<TRouter extends AnyRouter = AnyRouter>(opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
17
17
  //# sourceMappingURL=httpLink.d.ts.map
@@ -34,13 +34,13 @@ const universalRequester = (opts)=>{
34
34
  return httpUtils.jsonHttpRequester(opts);
35
35
  };
36
36
  /**
37
- * @link https://trpc.io/docs/client/links/httpLink
37
+ * @see https://trpc.io/docs/client/links/httpLink
38
38
  */ function httpLink(opts) {
39
39
  const resolvedOpts = httpUtils.resolveHTTPLinkOptions(opts);
40
40
  return ()=>{
41
- return ({ op })=>{
41
+ return ({ op })=>{
42
42
  return observable.observable((observer)=>{
43
- const { path , input , type } = op;
43
+ const { path, input, type } = op;
44
44
  /* istanbul ignore if -- @preserve */ if (type === 'subscription') {
45
45
  throw new Error('Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`');
46
46
  }
@@ -32,13 +32,13 @@ const universalRequester = (opts)=>{
32
32
  return jsonHttpRequester(opts);
33
33
  };
34
34
  /**
35
- * @link https://trpc.io/docs/client/links/httpLink
35
+ * @see https://trpc.io/docs/client/links/httpLink
36
36
  */ function httpLink(opts) {
37
37
  const resolvedOpts = resolveHTTPLinkOptions(opts);
38
38
  return ()=>{
39
- return ({ op })=>{
39
+ return ({ op })=>{
40
40
  return observable((observer)=>{
41
- const { path , input , type } = op;
41
+ const { path, input, type } = op;
42
42
  /* istanbul ignore if -- @preserve */ if (type === 'subscription') {
43
43
  throw new Error('Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`');
44
44
  }
@@ -1,17 +1,22 @@
1
- import type { AnyClientTypes, inferClientTypes, InferrableClientTypes } from '@trpc/server/unstable-core-do-not-import';
1
+ import type { AnyClientTypes, EventSourceLike, inferClientTypes, InferrableClientTypes } from '@trpc/server/unstable-core-do-not-import';
2
2
  import { type TransformerOptions } from '../unstable-internals';
3
- import type { CallbackOrValue } from './internals/urlWithConnectionParams';
4
3
  import { type UrlOptionsWithConnectionParams } from './internals/urlWithConnectionParams';
5
- import type { TRPCLink } from './types';
6
- type HTTPSubscriptionLinkOptions<TRoot extends AnyClientTypes> = {
4
+ import type { Operation, TRPCLink } from './types';
5
+ type HTTPSubscriptionLinkOptions<TRoot extends AnyClientTypes, TEventSource extends EventSourceLike.AnyConstructor = typeof EventSource> = {
6
+ /**
7
+ * EventSource ponyfill
8
+ */
9
+ EventSource?: TEventSource;
7
10
  /**
8
11
  * EventSource options or a callback that returns them
9
12
  */
10
- eventSourceOptions?: CallbackOrValue<EventSourceInit>;
13
+ eventSourceOptions?: EventSourceLike.InitDictOf<TEventSource> | ((opts: {
14
+ op: Operation;
15
+ }) => EventSourceLike.InitDictOf<TEventSource> | Promise<EventSourceLike.InitDictOf<TEventSource>>);
11
16
  } & TransformerOptions<TRoot> & UrlOptionsWithConnectionParams;
12
17
  /**
13
18
  * @see https://trpc.io/docs/client/links/httpSubscriptionLink
14
19
  */
15
- export declare function unstable_httpSubscriptionLink<TInferrable extends InferrableClientTypes>(opts: HTTPSubscriptionLinkOptions<inferClientTypes<TInferrable>>): TRPCLink<TInferrable>;
20
+ export declare function unstable_httpSubscriptionLink<TInferrable extends InferrableClientTypes, TEventSource extends EventSourceLike.AnyConstructor>(opts: HTTPSubscriptionLinkOptions<inferClientTypes<TInferrable>, TEventSource>): TRPCLink<TInferrable>;
16
21
  export {};
17
22
  //# sourceMappingURL=httpSubscriptionLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpSubscriptionLink.d.ts","sourceRoot":"","sources":["../../src/links/httpSubscriptionLink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,0CAA0C,CAAC;AAMlD,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC,KAAK,2BAA2B,CAAC,KAAK,SAAS,cAAc,IAAI;IAC/D;;OAEG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;CACvD,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAC3B,8BAA8B,CAAC;AAEjC;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,SAAS,qBAAqB,EAEzC,IAAI,EAAE,2BAA2B,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,GAC/D,QAAQ,CAAC,WAAW,CAAC,CAuJvB"}
1
+ {"version":3,"file":"httpSubscriptionLink.d.ts","sourceRoot":"","sources":["../../src/links/httpSubscriptionLink.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,0CAA0C,CAAC;AASlD,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBnD,KAAK,2BAA2B,CAC9B,KAAK,SAAS,cAAc,EAC5B,YAAY,SAAS,eAAe,CAAC,cAAc,GAAG,OAAO,WAAW,IACtE;IACF;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,kBAAkB,CAAC,EACf,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,GACxC,CAAC,CAAC,IAAI,EAAE;QACN,EAAE,EAAE,SAAS,CAAC;KACf,KACG,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,GACxC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAC5D,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAC3B,8BAA8B,CAAC;AAajC;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,SAAS,qBAAqB,EACzC,YAAY,SAAS,eAAe,CAAC,cAAc,EAEnD,IAAI,EAAE,2BAA2B,CAC/B,gBAAgB,CAAC,WAAW,CAAC,EAC7B,YAAY,CACb,GACA,QAAQ,CAAC,WAAW,CAAC,CAmKvB"}