@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.
- package/dist/TRPCClientError.d.ts +1 -1
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/TRPCClientError.js +19 -1
- package/dist/TRPCClientError.mjs +19 -1
- package/dist/bundle-analysis.json +118 -92
- package/dist/createTRPCClient.d.ts +3 -2
- package/dist/createTRPCClient.d.ts.map +1 -1
- package/dist/createTRPCClient.js +1 -1
- package/dist/createTRPCClient.mjs +1 -1
- package/dist/index.js +6 -6
- package/dist/index.mjs +2 -2
- package/dist/internals/TRPCUntypedClient.d.ts +5 -4
- package/dist/internals/TRPCUntypedClient.d.ts.map +1 -1
- package/dist/internals/TRPCUntypedClient.js +42 -12
- package/dist/internals/TRPCUntypedClient.mjs +42 -12
- package/dist/internals/inputWithTrackedEventId.d.ts +2 -0
- package/dist/internals/inputWithTrackedEventId.d.ts.map +1 -0
- package/dist/internals/inputWithTrackedEventId.js +16 -0
- package/dist/internals/inputWithTrackedEventId.mjs +14 -0
- package/dist/internals/signals.d.ts +15 -0
- package/dist/internals/signals.d.ts.map +1 -0
- package/dist/internals/signals.js +47 -0
- package/dist/internals/signals.mjs +44 -0
- package/dist/internals/transformer.d.ts +2 -2
- package/dist/internals/types.d.ts +1 -1
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/links/HTTPBatchLinkOptions.d.ts +1 -1
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.js +4 -3
- package/dist/links/httpBatchLink.mjs +5 -4
- package/dist/links/httpBatchStreamLink.d.ts.map +1 -1
- package/dist/links/httpBatchStreamLink.js +6 -4
- package/dist/links/httpBatchStreamLink.mjs +7 -5
- package/dist/links/httpLink.d.ts +2 -2
- package/dist/links/httpLink.js +3 -3
- package/dist/links/httpLink.mjs +3 -3
- package/dist/links/httpSubscriptionLink.d.ts +11 -6
- package/dist/links/httpSubscriptionLink.d.ts.map +1 -1
- package/dist/links/httpSubscriptionLink.js +130 -98
- package/dist/links/httpSubscriptionLink.mjs +132 -100
- package/dist/links/internals/contentTypes.d.ts +2 -2
- package/dist/links/internals/contentTypes.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.d.ts +1 -8
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.js +1 -30
- package/dist/links/internals/httpUtils.mjs +2 -30
- package/dist/links/internals/subscriptions.d.ts +20 -0
- package/dist/links/internals/subscriptions.d.ts.map +1 -0
- package/dist/links/internals/urlWithConnectionParams.d.ts +2 -1
- package/dist/links/internals/urlWithConnectionParams.d.ts.map +1 -1
- package/dist/links/internals/urlWithConnectionParams.js +3 -2
- package/dist/links/internals/urlWithConnectionParams.mjs +3 -2
- package/dist/links/loggerLink.d.ts +5 -5
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/loggerLink.js +25 -21
- package/dist/links/loggerLink.mjs +25 -21
- package/dist/links/retryLink.d.ts +29 -0
- package/dist/links/retryLink.d.ts.map +1 -0
- package/dist/links/retryLink.js +65 -0
- package/dist/links/retryLink.mjs +63 -0
- package/dist/links/types.d.ts +4 -23
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink.d.ts +49 -5
- package/dist/links/wsLink.d.ts.map +1 -1
- package/dist/links/wsLink.js +210 -155
- package/dist/links/wsLink.mjs +211 -156
- package/dist/links.d.ts +1 -0
- package/dist/links.d.ts.map +1 -1
- package/dist/unstable-internals.d.ts +1 -0
- package/dist/unstable-internals.d.ts.map +1 -1
- package/package.json +14 -11
- package/src/TRPCClientError.ts +1 -1
- package/src/createTRPCClient.ts +28 -23
- package/src/internals/TRPCUntypedClient.ts +26 -15
- package/src/internals/inputWithTrackedEventId.ts +15 -0
- package/src/internals/signals.ts +54 -0
- package/src/internals/transformer.ts +2 -2
- package/src/internals/types.ts +1 -1
- package/src/links/HTTPBatchLinkOptions.ts +1 -1
- package/src/links/httpBatchLink.ts +3 -3
- package/src/links/httpBatchStreamLink.ts +7 -4
- package/src/links/httpLink.ts +2 -2
- package/src/links/httpSubscriptionLink.ts +172 -123
- package/src/links/internals/httpUtils.ts +1 -41
- package/src/links/internals/subscriptions.ts +26 -0
- package/src/links/internals/urlWithConnectionParams.ts +8 -2
- package/src/links/loggerLink.ts +21 -9
- package/src/links/retryLink.ts +101 -0
- package/src/links/types.ts +8 -46
- package/src/links/wsLink.ts +276 -173
- package/src/links.ts +1 -1
- package/src/unstable-internals.ts +1 -0
- package/dist/links/internals/retryLink.d.ts +0 -9
- package/dist/links/internals/retryLink.d.ts.map +0 -1
- package/dist/links/types.js +0 -7
- package/dist/links/types.mjs +0 -5
- 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
|
|
53
|
-
signal:
|
|
65
|
+
context: opts.context,
|
|
66
|
+
signal: opts.signal
|
|
54
67
|
});
|
|
55
68
|
return observable$.subscribe({
|
|
56
69
|
next (envelope) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
|
51
|
-
signal:
|
|
63
|
+
context: opts.context,
|
|
64
|
+
signal: opts.signal
|
|
52
65
|
});
|
|
53
66
|
return observable$.subscribe({
|
|
54
67
|
next (envelope) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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 @@
|
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
};
|
|
@@ -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,
|
|
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
|
-
* @
|
|
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;
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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;
|
|
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
|
|
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:
|
|
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
|
|
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,
|
|
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
|
|
39
|
+
const batchSignals = allAbortSignals(...batchOps.map((op)=>op.signal));
|
|
40
|
+
const abortController = new AbortController();
|
|
39
41
|
const responsePromise = fetchHTTPResponse({
|
|
40
42
|
...resolvedOpts,
|
|
41
|
-
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
|
|
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`');
|
package/dist/links/httpLink.d.ts
CHANGED
|
@@ -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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
package/dist/links/httpLink.js
CHANGED
|
@@ -34,13 +34,13 @@ const universalRequester = (opts)=>{
|
|
|
34
34
|
return httpUtils.jsonHttpRequester(opts);
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
|
-
* @
|
|
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
|
|
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
|
}
|
package/dist/links/httpLink.mjs
CHANGED
|
@@ -32,13 +32,13 @@ const universalRequester = (opts)=>{
|
|
|
32
32
|
return jsonHttpRequester(opts);
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
|
-
* @
|
|
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
|
|
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?:
|
|
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
|
|
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":"
|
|
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"}
|