@trpc/client 11.1.2 → 11.1.3-alpha-tmp-tsdown.23
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.mts +33 -0
- package/dist/TRPCClientError.d.mts.map +1 -0
- package/dist/TRPCClientError.d.ts +29 -25
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/TRPCClientError.js +48 -72
- package/dist/TRPCClientError.mjs +48 -71
- package/dist/TRPCClientError.mjs.map +1 -0
- package/dist/_virtual/rolldown_runtime.js +39 -0
- package/dist/_virtual/rolldown_runtime.mjs +27 -0
- package/dist/createTRPCClient.d.mts +73 -0
- package/dist/createTRPCClient.d.mts.map +1 -0
- package/dist/createTRPCClient.d.ts +38 -34
- package/dist/createTRPCClient.d.ts.map +1 -1
- package/dist/createTRPCClient.js +34 -34
- package/dist/createTRPCClient.mjs +33 -31
- package/dist/createTRPCClient.mjs.map +1 -0
- package/dist/createTRPCUntypedClient.d.mts +9 -0
- package/dist/createTRPCUntypedClient.d.mts.map +1 -0
- package/dist/createTRPCUntypedClient.d.ts +8 -6
- package/dist/createTRPCUntypedClient.d.ts.map +1 -1
- package/dist/createTRPCUntypedClient.js +5 -6
- package/dist/createTRPCUntypedClient.mjs +6 -3
- package/dist/createTRPCUntypedClient.mjs.map +1 -0
- package/dist/getFetch.d.mts +10 -0
- package/dist/getFetch.d.mts.map +1 -0
- package/dist/getFetch.d.ts +9 -2
- package/dist/getFetch.d.ts.map +1 -1
- package/dist/getFetch.js +8 -13
- package/dist/getFetch.mjs +8 -11
- package/dist/getFetch.mjs.map +1 -0
- package/dist/index.d.mts +21 -0
- package/dist/index.d.ts +21 -16
- package/dist/index.js +41 -42
- package/dist/index.mjs +18 -15
- package/dist/internals/TRPCUntypedClient.d.mts +46 -0
- package/dist/internals/TRPCUntypedClient.d.mts.map +1 -0
- package/dist/internals/TRPCUntypedClient.d.ts +40 -33
- package/dist/internals/TRPCUntypedClient.d.ts.map +1 -1
- package/dist/internals/TRPCUntypedClient.js +94 -113
- package/dist/internals/TRPCUntypedClient.mjs +93 -110
- package/dist/internals/TRPCUntypedClient.mjs.map +1 -0
- package/dist/internals/dataLoader.js +101 -116
- package/dist/internals/dataLoader.mjs +101 -114
- package/dist/internals/dataLoader.mjs.map +1 -0
- package/dist/internals/inputWithTrackedEventId.js +9 -12
- package/dist/internals/inputWithTrackedEventId.mjs +9 -10
- package/dist/internals/inputWithTrackedEventId.mjs.map +1 -0
- package/dist/internals/signals.js +39 -40
- package/dist/internals/signals.mjs +39 -39
- package/dist/internals/signals.mjs.map +1 -0
- package/dist/internals/transformer.d.mts +47 -0
- package/dist/internals/transformer.d.mts.map +1 -0
- package/dist/internals/transformer.d.ts +28 -23
- package/dist/internals/transformer.d.ts.map +1 -1
- package/dist/internals/transformer.js +25 -26
- package/dist/internals/transformer.mjs +25 -24
- package/dist/internals/transformer.mjs.map +1 -0
- package/dist/internals/types.d.mts +85 -0
- package/dist/internals/types.d.mts.map +1 -0
- package/dist/internals/types.d.ts +45 -42
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/links/HTTPBatchLinkOptions.d.mts +25 -0
- package/dist/links/HTTPBatchLinkOptions.d.mts.map +1 -0
- package/dist/links/HTTPBatchLinkOptions.d.ts +23 -18
- package/dist/links/HTTPBatchLinkOptions.d.ts.map +1 -1
- package/dist/links/httpBatchLink.d.mts +18 -0
- package/dist/links/httpBatchLink.d.mts.map +1 -0
- package/dist/links/httpBatchLink.d.ts +14 -4
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.js +90 -106
- package/dist/links/httpBatchLink.mjs +89 -103
- package/dist/links/httpBatchLink.mjs.map +1 -0
- package/dist/links/httpBatchStreamLink.d.mts +22 -0
- package/dist/links/httpBatchStreamLink.d.mts.map +1 -0
- package/dist/links/httpBatchStreamLink.d.ts +15 -5
- package/dist/links/httpBatchStreamLink.d.ts.map +1 -1
- package/dist/links/httpBatchStreamLink.js +120 -144
- package/dist/links/httpBatchStreamLink.mjs +119 -141
- package/dist/links/httpBatchStreamLink.mjs.map +1 -0
- package/dist/links/httpLink.d.mts +24 -0
- package/dist/links/httpLink.d.mts.map +1 -0
- package/dist/links/httpLink.d.ts +19 -12
- package/dist/links/httpLink.d.ts.map +1 -1
- package/dist/links/httpLink.js +74 -90
- package/dist/links/httpLink.mjs +73 -87
- package/dist/links/httpLink.mjs.map +1 -0
- package/dist/links/httpSubscriptionLink.d.mts +30 -0
- package/dist/links/httpSubscriptionLink.d.mts.map +1 -0
- package/dist/links/httpSubscriptionLink.d.ts +21 -17
- package/dist/links/httpSubscriptionLink.d.ts.map +1 -1
- package/dist/links/httpSubscriptionLink.js +134 -179
- package/dist/links/httpSubscriptionLink.mjs +133 -176
- package/dist/links/httpSubscriptionLink.mjs.map +1 -0
- package/dist/links/internals/contentTypes.d.mts +10 -0
- package/dist/links/internals/contentTypes.d.mts.map +1 -0
- package/dist/links/internals/contentTypes.d.ts +9 -3
- package/dist/links/internals/contentTypes.d.ts.map +1 -1
- package/dist/links/internals/contentTypes.js +6 -6
- package/dist/links/internals/contentTypes.mjs +6 -4
- package/dist/links/internals/contentTypes.mjs.map +1 -0
- package/dist/links/internals/createChain.js +23 -23
- package/dist/links/internals/createChain.mjs +22 -20
- package/dist/links/internals/createChain.mjs.map +1 -0
- package/dist/links/internals/httpUtils.d.mts +26 -0
- package/dist/links/internals/httpUtils.d.mts.map +1 -0
- package/dist/links/internals/httpUtils.d.ts +22 -64
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.js +93 -116
- package/dist/links/internals/httpUtils.mjs +94 -113
- package/dist/links/internals/httpUtils.mjs.map +1 -0
- package/dist/links/internals/subscriptions.d.mts +20 -0
- package/dist/links/internals/subscriptions.d.mts.map +1 -0
- package/dist/links/internals/subscriptions.d.ts +11 -8
- package/dist/links/internals/subscriptions.d.ts.map +1 -1
- package/dist/links/internals/urlWithConnectionParams.d.mts +27 -0
- package/dist/links/internals/urlWithConnectionParams.d.mts.map +1 -0
- package/dist/links/internals/urlWithConnectionParams.d.ts +22 -18
- package/dist/links/internals/urlWithConnectionParams.d.ts.map +1 -1
- package/dist/links/internals/urlWithConnectionParams.js +8 -6
- package/dist/links/internals/urlWithConnectionParams.mjs +8 -4
- package/dist/links/internals/urlWithConnectionParams.mjs.map +1 -0
- package/dist/links/localLink.d.mts +22 -0
- package/dist/links/localLink.d.mts.map +1 -0
- package/dist/links/localLink.d.ts +22 -0
- package/dist/links/localLink.d.ts.map +1 -0
- package/dist/links/localLink.js +192 -0
- package/dist/links/localLink.mjs +193 -0
- package/dist/links/localLink.mjs.map +1 -0
- package/dist/links/loggerLink.d.mts +56 -0
- package/dist/links/loggerLink.d.mts.map +1 -0
- package/dist/links/loggerLink.d.ts +40 -36
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/loggerLink.js +113 -166
- package/dist/links/loggerLink.mjs +112 -163
- package/dist/links/loggerLink.mjs.map +1 -0
- package/dist/links/retryLink.d.mts +35 -0
- package/dist/links/retryLink.d.mts.map +1 -0
- package/dist/links/retryLink.d.ts +27 -25
- package/dist/links/retryLink.d.ts.map +1 -1
- package/dist/links/retryLink.js +60 -68
- package/dist/links/retryLink.mjs +59 -65
- package/dist/links/retryLink.mjs.map +1 -0
- package/dist/links/splitLink.d.mts +21 -0
- package/dist/links/splitLink.d.mts.map +1 -0
- package/dist/links/splitLink.d.ts +19 -12
- package/dist/links/splitLink.d.ts.map +1 -1
- package/dist/links/splitLink.js +20 -21
- package/dist/links/splitLink.mjs +19 -18
- package/dist/links/splitLink.mjs.map +1 -0
- package/dist/links/types.d.mts +71 -0
- package/dist/links/types.d.mts.map +1 -0
- package/dist/links/types.d.ts +37 -29
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink/createWsClient.d.mts +10 -0
- package/dist/links/wsLink/createWsClient.d.mts.map +1 -0
- package/dist/links/wsLink/createWsClient.d.ts +9 -5
- package/dist/links/wsLink/createWsClient.d.ts.map +1 -1
- package/dist/links/wsLink/createWsClient.js +5 -5
- package/dist/links/wsLink/createWsClient.mjs +5 -2
- package/dist/links/wsLink/createWsClient.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/options.d.mts +69 -0
- package/dist/links/wsLink/wsClient/options.d.mts.map +1 -0
- package/dist/links/wsLink/wsClient/options.d.ts +54 -64
- package/dist/links/wsLink/wsClient/options.d.ts.map +1 -1
- package/dist/links/wsLink/wsClient/options.js +14 -12
- package/dist/links/wsLink/wsClient/options.mjs +14 -10
- package/dist/links/wsLink/wsClient/options.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/requestManager.js +133 -135
- package/dist/links/wsLink/wsClient/requestManager.mjs +133 -132
- package/dist/links/wsLink/wsClient/requestManager.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/utils.js +64 -81
- package/dist/links/wsLink/wsClient/utils.mjs +64 -78
- package/dist/links/wsLink/wsClient/utils.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/wsClient.d.mts +104 -0
- package/dist/links/wsLink/wsClient/wsClient.d.mts.map +1 -0
- package/dist/links/wsLink/wsClient/wsClient.d.ts +99 -79
- package/dist/links/wsLink/wsClient/wsClient.d.ts.map +1 -1
- package/dist/links/wsLink/wsClient/wsClient.js +273 -322
- package/dist/links/wsLink/wsClient/wsClient.mjs +272 -319
- package/dist/links/wsLink/wsClient/wsClient.mjs.map +1 -0
- package/dist/links/wsLink/wsClient/wsConnection.js +155 -178
- package/dist/links/wsLink/wsClient/wsConnection.mjs +154 -175
- package/dist/links/wsLink/wsClient/wsConnection.mjs.map +1 -0
- package/dist/links/wsLink/wsLink.d.mts +15 -0
- package/dist/links/wsLink/wsLink.d.mts.map +1 -0
- package/dist/links/wsLink/wsLink.d.ts +13 -9
- package/dist/links/wsLink/wsLink.d.ts.map +1 -1
- package/dist/links/wsLink/wsLink.js +30 -31
- package/dist/links/wsLink/wsLink.mjs +29 -28
- package/dist/links/wsLink/wsLink.mjs.map +1 -0
- package/dist/links.js +11 -0
- package/dist/links.mjs +11 -0
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js +68 -0
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs +66 -0
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs.map +1 -0
- package/dist/unstable-internals.d.mts +3 -0
- package/dist/unstable-internals.d.ts +3 -3
- package/dist/unstable-internals.js +2 -6
- package/dist/unstable-internals.mjs +3 -1
- package/links/httpBatchLink/package.json +1 -0
- package/links/httpLink/package.json +1 -0
- package/links/loggerLink/package.json +1 -0
- package/links/splitLink/package.json +1 -0
- package/links/wsLink/wsLink/package.json +1 -0
- package/package.json +64 -29
- package/src/TRPCClientError.ts +4 -9
- package/src/internals/dataLoader.ts +2 -6
- package/src/internals/signals.ts +16 -0
- package/src/links/httpSubscriptionLink.ts +3 -18
- package/src/links/localLink.ts +277 -0
- package/src/links/wsLink/wsClient/requestManager.ts +9 -0
- package/src/links/wsLink/wsClient/wsClient.ts +1 -1
- package/src/links.ts +1 -0
- package/unstable-internals/package.json +1 -0
- package/dist/index.d.ts.map +0 -1
- package/dist/internals/dataLoader.d.ts +0 -13
- package/dist/internals/dataLoader.d.ts.map +0 -1
- package/dist/internals/inputWithTrackedEventId.d.ts +0 -2
- package/dist/internals/inputWithTrackedEventId.d.ts.map +0 -1
- package/dist/internals/signals.d.ts +0 -15
- package/dist/internals/signals.d.ts.map +0 -1
- package/dist/links/internals/createChain.d.ts +0 -8
- package/dist/links/internals/createChain.d.ts.map +0 -1
- package/dist/links/internals/dedupeLink.d.ts +0 -7
- package/dist/links/internals/dedupeLink.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/requestManager.d.ts +0 -102
- package/dist/links/wsLink/wsClient/requestManager.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/utils.d.ts +0 -38
- package/dist/links/wsLink/wsClient/utils.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/wsConnection.d.ts +0 -79
- package/dist/links/wsLink/wsClient/wsConnection.d.ts.map +0 -1
- package/dist/links.d.ts +0 -11
- package/dist/links.d.ts.map +0 -1
- package/dist/unstable-internals.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","names":[],"sources":["../../../src/links/internals/subscriptions.ts"],"sourcesContent":[],"mappings":";UAAU;EAAA,IAAA,EAAA,OAAA;EAMA,IAAA,CAAA,EAAA,KAAA;EAIA,KAAA,EAPD,MAOC,GAAA,IAAA;;UAJA,mBAAA,SAA4B,mBAKR,CAAA,IAAA,CAAA,CAAA;EAAM,KAA1B,EAAA,MAAA;AAAmB;AAAA,UADnB,yBAKuB,CAAA,MAAQ,CAAA,SAJ/B,mBAIkD,CAJ9B,MAI8B,GAAA,IAAA,CAAA,CAAA;EAIhD,KAAA,EAAA,YAAA;;UAJF,sBAAA,SAA+B,mBAKrC,CAAA,IAAA,CAAA,CAAA;EAAmB,KACO,EAAA,SAAA;;AAC1B,KAHQ,mBAGR,CAAA,MAAA,CAAA,GAFA,mBAEA,GADA,yBACA,CAD0B,MAC1B,CAAA,GAAA,sBAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TRPCRequestInfo } from "@trpc/server/http";
|
|
2
|
+
|
|
3
|
+
//#region src/links/internals/urlWithConnectionParams.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A value that can be wrapped in callback
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A value that can be wrapped in callback
|
|
10
|
+
*/
|
|
11
|
+
type CallbackOrValue<T> = T | (() => T | Promise<T>);
|
|
12
|
+
interface UrlOptionsWithConnectionParams {
|
|
13
|
+
/**
|
|
14
|
+
* The URL to connect to (can be a function that returns a URL)
|
|
15
|
+
*/
|
|
16
|
+
url: CallbackOrValue<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Connection params that are available in `createContext()`
|
|
19
|
+
* - For `wsLink`/`wsClient`, these are sent as the first message
|
|
20
|
+
* - For `httpSubscriptionLink`, these are serialized as part of the URL under the `connectionParams` query
|
|
21
|
+
*/
|
|
22
|
+
connectionParams?: CallbackOrValue<TRPCRequestInfo['connectionParams']>;
|
|
23
|
+
} //#endregion
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=urlWithConnectionParams.d.ts.map
|
|
26
|
+
export { UrlOptionsWithConnectionParams };
|
|
27
|
+
//# sourceMappingURL=urlWithConnectionParams.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlWithConnectionParams.d.mts","names":[],"sources":["../../../src/links/internals/urlWithConnectionParams.ts"],"sourcesContent":[],"mappings":";;;;;;;AAkBA;;;AAA4C,KAAhC,eAAgC,CAAA,CAAA,CAAA,GAAX,CAAW,GAAA,CAAA,GAAA,GAAA,CAAA,GAAI,OAAJ,CAAY,CAAZ,CAAA,CAAA;AAAY,UAEvC,8BAAA,CAFuC;EAAC;AAAF;AAEvD;EAA+C,GAAA,EAIxC,eAJwC,CAAA,MAAA,CAAA;EAAA;;;AAWX;;qBAAf,gBAAgB"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TRPCRequestInfo } from "@trpc/server/http";
|
|
2
|
+
|
|
3
|
+
//#region src/links/internals/urlWithConnectionParams.d.ts
|
|
2
4
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare const resultOf: <T, TArgs extends any[]>(value: T | ((...args: TArgs) => T), ...args: TArgs) => T;
|
|
5
|
+
* A value that can be wrapped in callback
|
|
6
|
+
*/
|
|
7
|
+
|
|
7
8
|
/**
|
|
8
9
|
* A value that can be wrapped in callback
|
|
9
10
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
11
|
+
type CallbackOrValue<T> = T | (() => T | Promise<T>);
|
|
12
|
+
interface UrlOptionsWithConnectionParams {
|
|
13
|
+
/**
|
|
14
|
+
* The URL to connect to (can be a function that returns a URL)
|
|
15
|
+
*/
|
|
16
|
+
url: CallbackOrValue<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Connection params that are available in `createContext()`
|
|
19
|
+
* - For `wsLink`/`wsClient`, these are sent as the first message
|
|
20
|
+
* - For `httpSubscriptionLink`, these are serialized as part of the URL under the `connectionParams` query
|
|
21
|
+
*/
|
|
22
|
+
connectionParams?: CallbackOrValue<TRPCRequestInfo['connectionParams']>;
|
|
23
|
+
} //#endregion
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=urlWithConnectionParams.d.ts.map
|
|
26
|
+
export { UrlOptionsWithConnectionParams };
|
|
23
27
|
//# sourceMappingURL=urlWithConnectionParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlWithConnectionParams.d.ts","
|
|
1
|
+
{"version":3,"file":"urlWithConnectionParams.d.ts","names":[],"sources":["../../../src/links/internals/urlWithConnectionParams.ts"],"sourcesContent":[],"mappings":";;;;;;;AAkBA;;;AAA4C,KAAhC,eAAgC,CAAA,CAAA,CAAA,GAAX,CAAW,GAAA,CAAA,GAAA,GAAA,CAAA,GAAI,OAAJ,CAAY,CAAZ,CAAA,CAAA;AAAY,UAEvC,8BAAA,CAFuC;EAAC;AAAF;AAEvD;EAA+C,GAAA,EAIxC,eAJwC,CAAA,MAAA,CAAA;EAAA;;;AAWX;;qBAAf,gBAAgB"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
|
|
2
|
+
//#region src/links/internals/urlWithConnectionParams.ts
|
|
3
3
|
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
* Get the result of a value or function that returns a value
|
|
5
|
+
* It also optionally accepts typesafe arguments for the function
|
|
6
|
+
*/
|
|
7
|
+
const resultOf = (value, ...args) => {
|
|
8
|
+
return typeof value === "function" ? value(...args) : value;
|
|
8
9
|
};
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.resultOf = resultOf;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
//#region src/links/internals/urlWithConnectionParams.ts
|
|
1
2
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
* Get the result of a value or function that returns a value
|
|
4
|
+
* It also optionally accepts typesafe arguments for the function
|
|
5
|
+
*/
|
|
6
|
+
const resultOf = (value, ...args) => {
|
|
7
|
+
return typeof value === "function" ? value(...args) : value;
|
|
6
8
|
};
|
|
7
9
|
|
|
10
|
+
//#endregion
|
|
8
11
|
export { resultOf };
|
|
12
|
+
//# sourceMappingURL=urlWithConnectionParams.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlWithConnectionParams.mjs","names":["value: T | ((...args: TArgs) => T)"],"sources":["../../../src/links/internals/urlWithConnectionParams.ts"],"sourcesContent":["import { type TRPCRequestInfo } from '@trpc/server/http';\n\n/**\n * Get the result of a value or function that returns a value\n * It also optionally accepts typesafe arguments for the function\n */\nexport const resultOf = <T, TArgs extends any[]>(\n value: T | ((...args: TArgs) => T),\n ...args: TArgs\n): T => {\n return typeof value === 'function'\n ? (value as (...args: TArgs) => T)(...args)\n : value;\n};\n\n/**\n * A value that can be wrapped in callback\n */\nexport type CallbackOrValue<T> = T | (() => T | Promise<T>);\n\nexport interface UrlOptionsWithConnectionParams {\n /**\n * The URL to connect to (can be a function that returns a URL)\n */\n url: CallbackOrValue<string>;\n\n /**\n * Connection params that are available in `createContext()`\n * - For `wsLink`/`wsClient`, these are sent as the first message\n * - For `httpSubscriptionLink`, these are serialized as part of the URL under the `connectionParams` query\n */\n connectionParams?: CallbackOrValue<TRPCRequestInfo['connectionParams']>;\n}\n"],"mappings":";;;;;AAMA,MAAa,WAAW,CACtBA,OACA,GAAG,SACG;AACN,eAAc,UAAU,aACpB,AAAC,MAAgC,GAAG,KAAK,GACzC;AACL"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TRPCLink } from "./types.mjs";
|
|
2
|
+
import { TransformerOptions } from "../internals/transformer.mjs";
|
|
3
|
+
import { AnyRouter, ErrorHandlerOptions, inferClientTypes, inferRouterContext } from "@trpc/server/unstable-core-do-not-import";
|
|
4
|
+
|
|
5
|
+
//#region src/links/localLink.d.ts
|
|
6
|
+
type LocalLinkOptions<TRouter extends AnyRouter> = {
|
|
7
|
+
router: TRouter;
|
|
8
|
+
createContext: () => Promise<inferRouterContext<TRouter>>;
|
|
9
|
+
onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;
|
|
10
|
+
} & TransformerOptions<inferClientTypes<TRouter>>;
|
|
11
|
+
/**
|
|
12
|
+
* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.
|
|
13
|
+
*
|
|
14
|
+
* @see https://trpc.io/docs/links/localLink
|
|
15
|
+
*/
|
|
16
|
+
declare function experimental_localLink<TRouter extends AnyRouter>(opts: LocalLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
//# sourceMappingURL=localLink.d.ts.map
|
|
20
|
+
|
|
21
|
+
export { LocalLinkOptions, experimental_localLink as experimental_localLink$1 };
|
|
22
|
+
//# sourceMappingURL=localLink.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localLink.d.mts","names":[],"sources":["../../src/links/localLink.ts"],"sourcesContent":[],"mappings":";;;;;KA4BY,iCAAiC;UACnC;EADE,aAAA,EAAA,GAAA,GAEW,OAFK,CAEG,kBAFH,CAEsB,OAFtB,CAAA,CAAA;EAAA,OAAA,CAAA,EAAA,CAAA,IAAA,EAGT,mBAHS,CAGW,kBAHX,CAG8B,OAH9B,CAAA,CAAA,EAAA,GAAA,IAAA;CAAA,GAIxB,kBAJyC,CAItB,gBAJsB,CAIL,OAJK,CAAA,CAAA;;;;;;AAGN,iBAQvB,sBARuB,CAAA,gBAQgB,SARhB,CAAA,CAAA,IAAA,EAS/B,gBAT+B,CASd,OATc,CAAA,CAAA,EAUpC,QAVoC,CAU3B,OAV2B,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TRPCLink } from "./types.js";
|
|
2
|
+
import { TransformerOptions } from "../internals/transformer.js";
|
|
3
|
+
import { AnyRouter, ErrorHandlerOptions, inferClientTypes, inferRouterContext } from "@trpc/server/unstable-core-do-not-import";
|
|
4
|
+
|
|
5
|
+
//#region src/links/localLink.d.ts
|
|
6
|
+
type LocalLinkOptions<TRouter extends AnyRouter> = {
|
|
7
|
+
router: TRouter;
|
|
8
|
+
createContext: () => Promise<inferRouterContext<TRouter>>;
|
|
9
|
+
onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;
|
|
10
|
+
} & TransformerOptions<inferClientTypes<TRouter>>;
|
|
11
|
+
/**
|
|
12
|
+
* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.
|
|
13
|
+
*
|
|
14
|
+
* @see https://trpc.io/docs/links/localLink
|
|
15
|
+
*/
|
|
16
|
+
declare function experimental_localLink<TRouter extends AnyRouter>(opts: LocalLinkOptions<TRouter>): TRPCLink<TRouter>;
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
//# sourceMappingURL=localLink.d.ts.map
|
|
20
|
+
|
|
21
|
+
export { LocalLinkOptions, experimental_localLink };
|
|
22
|
+
//# sourceMappingURL=localLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localLink.d.ts","names":[],"sources":["../../src/links/localLink.ts"],"sourcesContent":[],"mappings":";;;;;KA4BY,iCAAiC;UACnC;EADE,aAAA,EAAA,GAAA,GAEW,OAFK,CAEG,kBAFH,CAEsB,OAFtB,CAAA,CAAA;EAAA,OAAA,CAAA,EAAA,CAAA,IAAA,EAGT,mBAHS,CAGW,kBAHX,CAG8B,OAH9B,CAAA,CAAA,EAAA,GAAA,IAAA;CAAA,GAIxB,kBAJyC,CAItB,gBAJsB,CAIL,OAJK,CAAA,CAAA;;;;;;AAGN,iBAQvB,sBARuB,CAAA,gBAQgB,SARhB,CAAA,CAAA,IAAA,EAS/B,gBAT+B,CASd,OATc,CAAA,CAAA,EAUpC,QAVoC,CAU3B,OAV2B,CAAA"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require__Users_julius_dev_trpc_packages_client_src_TRPCClientError = require('../TRPCClientError.js');
|
|
3
|
+
const require__Users_julius_dev_trpc_packages_client_src_internals_signals = require('../internals/signals.js');
|
|
4
|
+
const require__Users_julius_dev_trpc_packages_client_src_internals_transformer = require('../internals/transformer.js');
|
|
5
|
+
const require__Users_julius_dev_trpc_packages_client_src_internals_inputWithTrackedEventId = require('../internals/inputWithTrackedEventId.js');
|
|
6
|
+
const require__Users_julius_dev_trpc_node_modules__pnpm__oxc_project_runtime_0_71_0_node_modules__oxc_project_runtime_src_helpers_usingCtx = require('../node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js');
|
|
7
|
+
const __trpc_server_observable = require_rolldown_runtime.__toESM(require("@trpc/server/observable"));
|
|
8
|
+
const __trpc_server_unstable_core_do_not_import = require_rolldown_runtime.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
9
|
+
const __trpc_server = require_rolldown_runtime.__toESM(require("@trpc/server"));
|
|
10
|
+
const __trpc_server_rpc = require_rolldown_runtime.__toESM(require("@trpc/server/rpc"));
|
|
11
|
+
|
|
12
|
+
//#region src/links/localLink.ts
|
|
13
|
+
var import_usingCtx = require_rolldown_runtime.__toESM(require__Users_julius_dev_trpc_node_modules__pnpm__oxc_project_runtime_0_71_0_node_modules__oxc_project_runtime_src_helpers_usingCtx.require_usingCtx());
|
|
14
|
+
/**
|
|
15
|
+
* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.
|
|
16
|
+
*
|
|
17
|
+
* @see https://trpc.io/docs/links/localLink
|
|
18
|
+
*/
|
|
19
|
+
function experimental_localLink(opts) {
|
|
20
|
+
const transformer = require__Users_julius_dev_trpc_packages_client_src_internals_transformer.getTransformer(opts.transformer);
|
|
21
|
+
const transformChunk = (chunk) => {
|
|
22
|
+
if (opts.transformer) return chunk;
|
|
23
|
+
if (chunk === void 0) return chunk;
|
|
24
|
+
const serialized = JSON.stringify(transformer.input.serialize(chunk));
|
|
25
|
+
const deserialized = JSON.parse(transformer.output.deserialize(serialized));
|
|
26
|
+
return deserialized;
|
|
27
|
+
};
|
|
28
|
+
return () => ({ op }) => (0, __trpc_server_observable.observable)((observer) => {
|
|
29
|
+
let ctx = void 0;
|
|
30
|
+
const ac = new AbortController();
|
|
31
|
+
const signal = require__Users_julius_dev_trpc_packages_client_src_internals_signals.raceAbortSignals(op.signal, ac.signal);
|
|
32
|
+
const signalPromise = require__Users_julius_dev_trpc_packages_client_src_internals_signals.abortSignalToPromise(signal);
|
|
33
|
+
signalPromise.catch(() => {});
|
|
34
|
+
let input = op.input;
|
|
35
|
+
async function runProcedure(newInput) {
|
|
36
|
+
input = newInput;
|
|
37
|
+
ctx = await opts.createContext();
|
|
38
|
+
return (0, __trpc_server_unstable_core_do_not_import.callProcedure)({
|
|
39
|
+
router: opts.router,
|
|
40
|
+
path: op.path,
|
|
41
|
+
getRawInput: async () => newInput,
|
|
42
|
+
ctx,
|
|
43
|
+
type: op.type,
|
|
44
|
+
signal
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function onErrorCallback(cause) {
|
|
48
|
+
if ((0, __trpc_server_unstable_core_do_not_import.isAbortError)(cause)) return;
|
|
49
|
+
opts.onError?.({
|
|
50
|
+
error: (0, __trpc_server.getTRPCErrorFromUnknown)(cause),
|
|
51
|
+
type: op.type,
|
|
52
|
+
path: op.path,
|
|
53
|
+
input,
|
|
54
|
+
ctx
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function coerceToTRPCClientError(cause) {
|
|
58
|
+
if (require__Users_julius_dev_trpc_packages_client_src_TRPCClientError.isTRPCClientError(cause)) return cause;
|
|
59
|
+
const error = (0, __trpc_server.getTRPCErrorFromUnknown)(cause);
|
|
60
|
+
const shape = (0, __trpc_server.getTRPCErrorShape)({
|
|
61
|
+
config: opts.router._def._config,
|
|
62
|
+
ctx,
|
|
63
|
+
error,
|
|
64
|
+
input,
|
|
65
|
+
path: op.path,
|
|
66
|
+
type: op.type
|
|
67
|
+
});
|
|
68
|
+
return require__Users_julius_dev_trpc_packages_client_src_TRPCClientError.TRPCClientError.from({ error: transformChunk(shape) });
|
|
69
|
+
}
|
|
70
|
+
(0, __trpc_server_unstable_core_do_not_import.run)(async () => {
|
|
71
|
+
switch (op.type) {
|
|
72
|
+
case "query":
|
|
73
|
+
case "mutation": {
|
|
74
|
+
const result = await runProcedure(op.input);
|
|
75
|
+
if (!(0, __trpc_server_unstable_core_do_not_import.isAsyncIterable)(result)) {
|
|
76
|
+
observer.next({ result: { data: transformChunk(result) } });
|
|
77
|
+
observer.complete();
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
observer.next({ result: { data: async function* () {
|
|
81
|
+
try {
|
|
82
|
+
var _usingCtx = (0, import_usingCtx.default)();
|
|
83
|
+
const iterator = _usingCtx.a((0, __trpc_server_unstable_core_do_not_import.iteratorResource)(result));
|
|
84
|
+
const _finally = _usingCtx.u((0, __trpc_server_unstable_core_do_not_import.makeResource)({}, () => {
|
|
85
|
+
observer.complete();
|
|
86
|
+
}));
|
|
87
|
+
try {
|
|
88
|
+
while (true) {
|
|
89
|
+
const res = await Promise.race([iterator.next(), signalPromise]);
|
|
90
|
+
if (res.done) return transformChunk(res.value);
|
|
91
|
+
yield transformChunk(res.value);
|
|
92
|
+
}
|
|
93
|
+
} catch (cause) {
|
|
94
|
+
onErrorCallback(cause);
|
|
95
|
+
throw coerceToTRPCClientError(cause);
|
|
96
|
+
}
|
|
97
|
+
} catch (_) {
|
|
98
|
+
_usingCtx.e = _;
|
|
99
|
+
} finally {
|
|
100
|
+
await _usingCtx.d();
|
|
101
|
+
}
|
|
102
|
+
}() } });
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case "subscription": try {
|
|
106
|
+
var _usingCtx3 = (0, import_usingCtx.default)();
|
|
107
|
+
const connectionState = (0, __trpc_server_observable.behaviorSubject)({
|
|
108
|
+
type: "state",
|
|
109
|
+
state: "connecting",
|
|
110
|
+
error: null
|
|
111
|
+
});
|
|
112
|
+
const connectionSub = connectionState.subscribe({ next(state) {
|
|
113
|
+
observer.next({ result: state });
|
|
114
|
+
} });
|
|
115
|
+
let lastEventId = void 0;
|
|
116
|
+
const _finally = _usingCtx3.u((0, __trpc_server_unstable_core_do_not_import.makeResource)({}, async () => {
|
|
117
|
+
observer.complete();
|
|
118
|
+
connectionState.next({
|
|
119
|
+
type: "state",
|
|
120
|
+
state: "idle",
|
|
121
|
+
error: null
|
|
122
|
+
});
|
|
123
|
+
connectionSub.unsubscribe();
|
|
124
|
+
}));
|
|
125
|
+
while (true) try {
|
|
126
|
+
var _usingCtx4 = (0, import_usingCtx.default)();
|
|
127
|
+
const result = await runProcedure(require__Users_julius_dev_trpc_packages_client_src_internals_inputWithTrackedEventId.inputWithTrackedEventId(op.input, lastEventId));
|
|
128
|
+
if (!(0, __trpc_server_unstable_core_do_not_import.isAsyncIterable)(result)) throw new Error("Expected an async iterable");
|
|
129
|
+
const iterator = _usingCtx4.a((0, __trpc_server_unstable_core_do_not_import.iteratorResource)(result));
|
|
130
|
+
observer.next({ result: { type: "started" } });
|
|
131
|
+
connectionState.next({
|
|
132
|
+
type: "state",
|
|
133
|
+
state: "pending",
|
|
134
|
+
error: null
|
|
135
|
+
});
|
|
136
|
+
while (true) {
|
|
137
|
+
let res;
|
|
138
|
+
try {
|
|
139
|
+
res = await Promise.race([iterator.next(), signalPromise]);
|
|
140
|
+
} catch (cause) {
|
|
141
|
+
if ((0, __trpc_server_unstable_core_do_not_import.isAbortError)(cause)) return;
|
|
142
|
+
const error = (0, __trpc_server.getTRPCErrorFromUnknown)(cause);
|
|
143
|
+
if (!__trpc_server_unstable_core_do_not_import.retryableRpcCodes.includes(__trpc_server_rpc.TRPC_ERROR_CODES_BY_KEY[error.code])) throw coerceToTRPCClientError(error);
|
|
144
|
+
onErrorCallback(error);
|
|
145
|
+
connectionState.next({
|
|
146
|
+
type: "state",
|
|
147
|
+
state: "connecting",
|
|
148
|
+
error: coerceToTRPCClientError(error)
|
|
149
|
+
});
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (res.done) return;
|
|
153
|
+
let chunk;
|
|
154
|
+
if ((0, __trpc_server.isTrackedEnvelope)(res.value)) {
|
|
155
|
+
lastEventId = res.value[0];
|
|
156
|
+
chunk = {
|
|
157
|
+
id: res.value[0],
|
|
158
|
+
data: {
|
|
159
|
+
id: res.value[0],
|
|
160
|
+
data: res.value[1]
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
} else chunk = { data: res.value };
|
|
164
|
+
observer.next({ result: {
|
|
165
|
+
...chunk,
|
|
166
|
+
data: transformChunk(chunk.data)
|
|
167
|
+
} });
|
|
168
|
+
}
|
|
169
|
+
} catch (_) {
|
|
170
|
+
_usingCtx4.e = _;
|
|
171
|
+
} finally {
|
|
172
|
+
await _usingCtx4.d();
|
|
173
|
+
}
|
|
174
|
+
break;
|
|
175
|
+
} catch (_) {
|
|
176
|
+
_usingCtx3.e = _;
|
|
177
|
+
} finally {
|
|
178
|
+
_usingCtx3.d();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}).catch((cause) => {
|
|
182
|
+
onErrorCallback(cause);
|
|
183
|
+
observer.error(coerceToTRPCClientError(cause));
|
|
184
|
+
});
|
|
185
|
+
return () => {
|
|
186
|
+
ac.abort();
|
|
187
|
+
};
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
//#endregion
|
|
192
|
+
exports.experimental_localLink = experimental_localLink;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { __toESM } from "../_virtual/rolldown_runtime.mjs";
|
|
2
|
+
import { TRPCClientError, isTRPCClientError } from "../TRPCClientError.mjs";
|
|
3
|
+
import { abortSignalToPromise, raceAbortSignals } from "../internals/signals.mjs";
|
|
4
|
+
import { getTransformer } from "../internals/transformer.mjs";
|
|
5
|
+
import { inputWithTrackedEventId } from "../internals/inputWithTrackedEventId.mjs";
|
|
6
|
+
import { require_usingCtx } from "../node_modules/.pnpm/@oxc-project_runtime@0.71.0/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs";
|
|
7
|
+
import { behaviorSubject, observable } from "@trpc/server/observable";
|
|
8
|
+
import { callProcedure, isAbortError, isAsyncIterable, iteratorResource, makeResource, retryableRpcCodes, run } from "@trpc/server/unstable-core-do-not-import";
|
|
9
|
+
import { getTRPCErrorFromUnknown, getTRPCErrorShape, isTrackedEnvelope } from "@trpc/server";
|
|
10
|
+
import { TRPC_ERROR_CODES_BY_KEY } from "@trpc/server/rpc";
|
|
11
|
+
|
|
12
|
+
//#region src/links/localLink.ts
|
|
13
|
+
var import_usingCtx = __toESM(require_usingCtx());
|
|
14
|
+
/**
|
|
15
|
+
* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.
|
|
16
|
+
*
|
|
17
|
+
* @see https://trpc.io/docs/links/localLink
|
|
18
|
+
*/
|
|
19
|
+
function experimental_localLink(opts) {
|
|
20
|
+
const transformer = getTransformer(opts.transformer);
|
|
21
|
+
const transformChunk = (chunk) => {
|
|
22
|
+
if (opts.transformer) return chunk;
|
|
23
|
+
if (chunk === void 0) return chunk;
|
|
24
|
+
const serialized = JSON.stringify(transformer.input.serialize(chunk));
|
|
25
|
+
const deserialized = JSON.parse(transformer.output.deserialize(serialized));
|
|
26
|
+
return deserialized;
|
|
27
|
+
};
|
|
28
|
+
return () => ({ op }) => observable((observer) => {
|
|
29
|
+
let ctx = void 0;
|
|
30
|
+
const ac = new AbortController();
|
|
31
|
+
const signal = raceAbortSignals(op.signal, ac.signal);
|
|
32
|
+
const signalPromise = abortSignalToPromise(signal);
|
|
33
|
+
signalPromise.catch(() => {});
|
|
34
|
+
let input = op.input;
|
|
35
|
+
async function runProcedure(newInput) {
|
|
36
|
+
input = newInput;
|
|
37
|
+
ctx = await opts.createContext();
|
|
38
|
+
return callProcedure({
|
|
39
|
+
router: opts.router,
|
|
40
|
+
path: op.path,
|
|
41
|
+
getRawInput: async () => newInput,
|
|
42
|
+
ctx,
|
|
43
|
+
type: op.type,
|
|
44
|
+
signal
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function onErrorCallback(cause) {
|
|
48
|
+
if (isAbortError(cause)) return;
|
|
49
|
+
opts.onError?.({
|
|
50
|
+
error: getTRPCErrorFromUnknown(cause),
|
|
51
|
+
type: op.type,
|
|
52
|
+
path: op.path,
|
|
53
|
+
input,
|
|
54
|
+
ctx
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function coerceToTRPCClientError(cause) {
|
|
58
|
+
if (isTRPCClientError(cause)) return cause;
|
|
59
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
60
|
+
const shape = getTRPCErrorShape({
|
|
61
|
+
config: opts.router._def._config,
|
|
62
|
+
ctx,
|
|
63
|
+
error,
|
|
64
|
+
input,
|
|
65
|
+
path: op.path,
|
|
66
|
+
type: op.type
|
|
67
|
+
});
|
|
68
|
+
return TRPCClientError.from({ error: transformChunk(shape) });
|
|
69
|
+
}
|
|
70
|
+
run(async () => {
|
|
71
|
+
switch (op.type) {
|
|
72
|
+
case "query":
|
|
73
|
+
case "mutation": {
|
|
74
|
+
const result = await runProcedure(op.input);
|
|
75
|
+
if (!isAsyncIterable(result)) {
|
|
76
|
+
observer.next({ result: { data: transformChunk(result) } });
|
|
77
|
+
observer.complete();
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
observer.next({ result: { data: async function* () {
|
|
81
|
+
try {
|
|
82
|
+
var _usingCtx = (0, import_usingCtx.default)();
|
|
83
|
+
const iterator = _usingCtx.a(iteratorResource(result));
|
|
84
|
+
const _finally = _usingCtx.u(makeResource({}, () => {
|
|
85
|
+
observer.complete();
|
|
86
|
+
}));
|
|
87
|
+
try {
|
|
88
|
+
while (true) {
|
|
89
|
+
const res = await Promise.race([iterator.next(), signalPromise]);
|
|
90
|
+
if (res.done) return transformChunk(res.value);
|
|
91
|
+
yield transformChunk(res.value);
|
|
92
|
+
}
|
|
93
|
+
} catch (cause) {
|
|
94
|
+
onErrorCallback(cause);
|
|
95
|
+
throw coerceToTRPCClientError(cause);
|
|
96
|
+
}
|
|
97
|
+
} catch (_) {
|
|
98
|
+
_usingCtx.e = _;
|
|
99
|
+
} finally {
|
|
100
|
+
await _usingCtx.d();
|
|
101
|
+
}
|
|
102
|
+
}() } });
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case "subscription": try {
|
|
106
|
+
var _usingCtx3 = (0, import_usingCtx.default)();
|
|
107
|
+
const connectionState = behaviorSubject({
|
|
108
|
+
type: "state",
|
|
109
|
+
state: "connecting",
|
|
110
|
+
error: null
|
|
111
|
+
});
|
|
112
|
+
const connectionSub = connectionState.subscribe({ next(state) {
|
|
113
|
+
observer.next({ result: state });
|
|
114
|
+
} });
|
|
115
|
+
let lastEventId = void 0;
|
|
116
|
+
const _finally = _usingCtx3.u(makeResource({}, async () => {
|
|
117
|
+
observer.complete();
|
|
118
|
+
connectionState.next({
|
|
119
|
+
type: "state",
|
|
120
|
+
state: "idle",
|
|
121
|
+
error: null
|
|
122
|
+
});
|
|
123
|
+
connectionSub.unsubscribe();
|
|
124
|
+
}));
|
|
125
|
+
while (true) try {
|
|
126
|
+
var _usingCtx4 = (0, import_usingCtx.default)();
|
|
127
|
+
const result = await runProcedure(inputWithTrackedEventId(op.input, lastEventId));
|
|
128
|
+
if (!isAsyncIterable(result)) throw new Error("Expected an async iterable");
|
|
129
|
+
const iterator = _usingCtx4.a(iteratorResource(result));
|
|
130
|
+
observer.next({ result: { type: "started" } });
|
|
131
|
+
connectionState.next({
|
|
132
|
+
type: "state",
|
|
133
|
+
state: "pending",
|
|
134
|
+
error: null
|
|
135
|
+
});
|
|
136
|
+
while (true) {
|
|
137
|
+
let res;
|
|
138
|
+
try {
|
|
139
|
+
res = await Promise.race([iterator.next(), signalPromise]);
|
|
140
|
+
} catch (cause) {
|
|
141
|
+
if (isAbortError(cause)) return;
|
|
142
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
143
|
+
if (!retryableRpcCodes.includes(TRPC_ERROR_CODES_BY_KEY[error.code])) throw coerceToTRPCClientError(error);
|
|
144
|
+
onErrorCallback(error);
|
|
145
|
+
connectionState.next({
|
|
146
|
+
type: "state",
|
|
147
|
+
state: "connecting",
|
|
148
|
+
error: coerceToTRPCClientError(error)
|
|
149
|
+
});
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (res.done) return;
|
|
153
|
+
let chunk;
|
|
154
|
+
if (isTrackedEnvelope(res.value)) {
|
|
155
|
+
lastEventId = res.value[0];
|
|
156
|
+
chunk = {
|
|
157
|
+
id: res.value[0],
|
|
158
|
+
data: {
|
|
159
|
+
id: res.value[0],
|
|
160
|
+
data: res.value[1]
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
} else chunk = { data: res.value };
|
|
164
|
+
observer.next({ result: {
|
|
165
|
+
...chunk,
|
|
166
|
+
data: transformChunk(chunk.data)
|
|
167
|
+
} });
|
|
168
|
+
}
|
|
169
|
+
} catch (_) {
|
|
170
|
+
_usingCtx4.e = _;
|
|
171
|
+
} finally {
|
|
172
|
+
await _usingCtx4.d();
|
|
173
|
+
}
|
|
174
|
+
break;
|
|
175
|
+
} catch (_) {
|
|
176
|
+
_usingCtx3.e = _;
|
|
177
|
+
} finally {
|
|
178
|
+
_usingCtx3.d();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}).catch((cause) => {
|
|
182
|
+
onErrorCallback(cause);
|
|
183
|
+
observer.error(coerceToTRPCClientError(cause));
|
|
184
|
+
});
|
|
185
|
+
return () => {
|
|
186
|
+
ac.abort();
|
|
187
|
+
};
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
//#endregion
|
|
192
|
+
export { experimental_localLink };
|
|
193
|
+
//# sourceMappingURL=localLink.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localLink.mjs","names":["opts: LocalLinkOptions<TRouter>","chunk: unknown","ctx: inferRouterContext<TRouter> | undefined","newInput: unknown","cause: unknown","lastEventId: string | undefined","chunk: TRPCResult<unknown>"],"sources":["../../src/links/localLink.ts"],"sourcesContent":["import {\n getTRPCErrorFromUnknown,\n getTRPCErrorShape,\n isTrackedEnvelope,\n} from '@trpc/server';\nimport { behaviorSubject, observable } from '@trpc/server/observable';\nimport { TRPC_ERROR_CODES_BY_KEY, type TRPCResult } from '@trpc/server/rpc';\nimport {\n callProcedure,\n isAbortError,\n isAsyncIterable,\n iteratorResource,\n makeResource,\n retryableRpcCodes,\n run,\n type AnyRouter,\n type ErrorHandlerOptions,\n type inferClientTypes,\n type inferRouterContext,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { inputWithTrackedEventId } from '../internals/inputWithTrackedEventId';\nimport { abortSignalToPromise, raceAbortSignals } from '../internals/signals';\nimport { getTransformer } from '../internals/transformer';\nimport type { TransformerOptions } from '../internals/transformer';\nimport { isTRPCClientError, TRPCClientError } from '../TRPCClientError';\nimport type { TRPCConnectionState } from './internals/subscriptions';\nimport type { TRPCLink } from './types';\n\nexport type LocalLinkOptions<TRouter extends AnyRouter> = {\n router: TRouter;\n createContext: () => Promise<inferRouterContext<TRouter>>;\n onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;\n} & TransformerOptions<inferClientTypes<TRouter>>;\n\n/**\n * localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.\n *\n * @see https://trpc.io/docs/links/localLink\n */\nexport function experimental_localLink<TRouter extends AnyRouter>(\n opts: LocalLinkOptions<TRouter>,\n): TRPCLink<TRouter> {\n const transformer = getTransformer(opts.transformer);\n\n const transformChunk = (chunk: unknown) => {\n if (opts.transformer) {\n // assume transformer will do the right thing\n return chunk;\n }\n // Special case for undefined, because `JSON.stringify(undefined)` throws\n if (chunk === undefined) {\n return chunk;\n }\n const serialized = JSON.stringify(transformer.input.serialize(chunk));\n const deserialized = JSON.parse(transformer.output.deserialize(serialized));\n return deserialized;\n };\n\n return () =>\n ({ op }) =>\n observable((observer) => {\n let ctx: inferRouterContext<TRouter> | undefined = undefined;\n const ac = new AbortController();\n\n const signal = raceAbortSignals(op.signal, ac.signal);\n const signalPromise = abortSignalToPromise(signal);\n\n signalPromise.catch(() => {\n // prevent unhandled rejection\n });\n\n let input = op.input;\n async function runProcedure(newInput: unknown): Promise<unknown> {\n input = newInput;\n\n ctx = await opts.createContext();\n\n return callProcedure({\n router: opts.router,\n path: op.path,\n getRawInput: async () => newInput,\n ctx,\n type: op.type,\n signal,\n });\n }\n\n function onErrorCallback(cause: unknown) {\n if (isAbortError(cause)) {\n return;\n }\n opts.onError?.({\n error: getTRPCErrorFromUnknown(cause),\n type: op.type,\n path: op.path,\n input,\n ctx,\n });\n }\n\n function coerceToTRPCClientError(cause: unknown) {\n if (isTRPCClientError<TRouter>(cause)) {\n return cause;\n }\n const error = getTRPCErrorFromUnknown(cause);\n\n const shape = getTRPCErrorShape({\n config: opts.router._def._config,\n ctx,\n error,\n input,\n path: op.path,\n type: op.type,\n });\n return TRPCClientError.from({\n error: transformChunk(shape),\n });\n }\n\n run(async () => {\n switch (op.type) {\n case 'query':\n case 'mutation': {\n const result = await runProcedure(op.input);\n if (!isAsyncIterable(result)) {\n observer.next({\n result: { data: transformChunk(result) },\n });\n observer.complete();\n break;\n }\n\n observer.next({\n result: {\n data: (async function* () {\n await using iterator = iteratorResource(result);\n using _finally = makeResource({}, () => {\n observer.complete();\n });\n try {\n while (true) {\n const res = await Promise.race([\n iterator.next(),\n signalPromise,\n ]);\n if (res.done) {\n return transformChunk(res.value);\n }\n yield transformChunk(res.value);\n }\n } catch (cause) {\n onErrorCallback(cause);\n throw coerceToTRPCClientError(cause);\n }\n })(),\n },\n });\n break;\n }\n case 'subscription': {\n const connectionState = behaviorSubject<\n TRPCConnectionState<TRPCClientError<any>>\n >({\n type: 'state',\n state: 'connecting',\n error: null,\n });\n\n const connectionSub = connectionState.subscribe({\n next(state) {\n observer.next({\n result: state,\n });\n },\n });\n let lastEventId: string | undefined = undefined;\n\n using _finally = makeResource({}, async () => {\n observer.complete();\n\n connectionState.next({\n type: 'state',\n state: 'idle',\n error: null,\n });\n connectionSub.unsubscribe();\n });\n while (true) {\n const result = await runProcedure(\n inputWithTrackedEventId(op.input, lastEventId),\n );\n if (!isAsyncIterable(result)) {\n throw new Error('Expected an async iterable');\n }\n await using iterator = iteratorResource(result);\n\n observer.next({\n result: {\n type: 'started',\n },\n });\n connectionState.next({\n type: 'state',\n state: 'pending',\n error: null,\n });\n\n // Use a while loop to handle errors and reconnects\n while (true) {\n let res;\n try {\n res = await Promise.race([iterator.next(), signalPromise]);\n } catch (cause) {\n if (isAbortError(cause)) {\n return;\n }\n const error = getTRPCErrorFromUnknown(cause);\n\n if (\n !retryableRpcCodes.includes(\n TRPC_ERROR_CODES_BY_KEY[error.code],\n )\n ) {\n throw coerceToTRPCClientError(error);\n }\n\n onErrorCallback(error);\n connectionState.next({\n type: 'state',\n state: 'connecting',\n error: coerceToTRPCClientError(error),\n });\n\n break;\n }\n\n if (res.done) {\n return;\n }\n let chunk: TRPCResult<unknown>;\n if (isTrackedEnvelope(res.value)) {\n lastEventId = res.value[0];\n\n chunk = {\n id: res.value[0],\n data: {\n id: res.value[0],\n data: res.value[1],\n },\n };\n } else {\n chunk = {\n data: res.value,\n };\n }\n\n observer.next({\n result: {\n ...chunk,\n data: transformChunk(chunk.data),\n },\n });\n }\n }\n break;\n }\n }\n }).catch((cause) => {\n onErrorCallback(cause);\n observer.error(coerceToTRPCClientError(cause));\n });\n\n return () => {\n ac.abort();\n };\n });\n}\n"],"mappings":"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"}
|