@trpc/client 11.0.0-next.91 → 11.0.0-rc.329
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/README.md +4 -4
- package/dist/TRPCClientError.d.ts +8 -7
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/{TRPCClientError-e224e397.js → TRPCClientError.js} +3 -3
- package/dist/{TRPCClientError-0de4d231.mjs → TRPCClientError.mjs} +4 -4
- package/dist/bundle-analysis.json +126 -155
- package/dist/createTRPCClient.d.ts +27 -19
- package/dist/createTRPCClient.d.ts.map +1 -1
- package/dist/createTRPCClient.js +50 -0
- package/dist/createTRPCClient.mjs +45 -0
- package/dist/createTRPCUntypedClient.d.ts +3 -2
- package/dist/createTRPCUntypedClient.d.ts.map +1 -1
- package/dist/createTRPCUntypedClient.js +10 -0
- package/dist/createTRPCUntypedClient.mjs +7 -0
- package/dist/getFetch.d.ts +1 -1
- package/dist/getFetch.d.ts.map +1 -1
- package/dist/getFetch.js +17 -0
- package/dist/getFetch.mjs +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -370
- package/dist/index.mjs +9 -354
- package/dist/internals/TRPCUntypedClient.d.ts +5 -30
- package/dist/internals/TRPCUntypedClient.d.ts.map +1 -1
- package/dist/internals/TRPCUntypedClient.js +85 -0
- package/dist/internals/TRPCUntypedClient.mjs +83 -0
- package/dist/internals/dataLoader.d.ts +1 -1
- package/dist/internals/dataLoader.d.ts.map +1 -1
- package/dist/{httpBatchLink-204206a5.mjs → internals/dataLoader.js} +2 -117
- package/dist/internals/dataLoader.mjs +131 -0
- package/dist/internals/getAbortController.d.ts +2 -2
- package/dist/internals/getAbortController.d.ts.map +1 -1
- package/dist/internals/getAbortController.js +18 -0
- package/dist/internals/getAbortController.mjs +16 -0
- package/dist/internals/transformer.d.ts +42 -0
- package/dist/internals/transformer.d.ts.map +1 -0
- package/dist/internals/transformer.js +30 -0
- package/dist/internals/transformer.mjs +28 -0
- package/dist/internals/types.d.ts +4 -2
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/links/HTTPBatchLinkOptions.d.ts +6 -5
- package/dist/links/HTTPBatchLinkOptions.d.ts.map +1 -1
- package/dist/links/httpBatchLink.d.ts +2 -2
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.js +37 -9
- package/dist/links/httpBatchLink.mjs +39 -5
- package/dist/links/httpBatchStreamLink.d.ts +6 -5
- package/dist/links/httpBatchStreamLink.d.ts.map +1 -1
- package/dist/links/httpBatchStreamLink.js +43 -0
- package/dist/links/httpBatchStreamLink.mjs +41 -0
- package/dist/links/httpFormDataLink.d.ts +1 -1
- package/dist/links/httpFormDataLink.d.ts.map +1 -1
- package/dist/links/httpFormDataLink.js +31 -0
- package/dist/links/httpFormDataLink.mjs +29 -0
- package/dist/links/httpLink.d.ts +8 -8
- package/dist/links/httpLink.d.ts.map +1 -1
- package/dist/links/httpLink.js +6 -9
- package/dist/links/httpLink.mjs +6 -7
- package/dist/links/internals/createChain.d.ts +2 -2
- package/dist/links/internals/createChain.d.ts.map +1 -1
- package/dist/{splitLink-f29e84be.js → links/internals/createChain.js} +0 -22
- package/dist/{splitLink-4c75f7be.mjs → links/internals/createChain.mjs} +1 -22
- package/dist/links/internals/createHTTPBatchLink.d.ts +6 -6
- package/dist/links/internals/createHTTPBatchLink.d.ts.map +1 -1
- package/dist/links/internals/createHTTPBatchLink.js +85 -0
- package/dist/links/internals/createHTTPBatchLink.mjs +83 -0
- package/dist/links/internals/dedupeLink.d.ts +2 -2
- package/dist/links/internals/dedupeLink.d.ts.map +1 -1
- package/dist/links/internals/getTextDecoder.d.ts +1 -1
- package/dist/links/internals/getTextDecoder.d.ts.map +1 -1
- package/dist/links/internals/getTextDecoder.js +18 -0
- package/dist/links/internals/getTextDecoder.mjs +16 -0
- package/dist/links/internals/httpUtils.d.ts +19 -11
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/{httpUtils-c0e7bf5a.js → links/internals/httpUtils.js} +20 -39
- package/dist/{httpUtils-f58ceda1.mjs → links/internals/httpUtils.mjs} +20 -38
- package/dist/links/internals/parseJSONStream.d.ts +5 -6
- package/dist/links/internals/parseJSONStream.d.ts.map +1 -1
- package/dist/links/internals/parseJSONStream.js +118 -0
- package/dist/links/internals/parseJSONStream.mjs +115 -0
- package/dist/links/internals/retryLink.d.ts +2 -2
- package/dist/links/internals/retryLink.d.ts.map +1 -1
- package/dist/links/loggerLink.d.ts +4 -4
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/loggerLink.js +6 -4
- package/dist/links/loggerLink.mjs +6 -2
- package/dist/links/splitLink.d.ts +2 -2
- package/dist/links/splitLink.d.ts.map +1 -1
- package/dist/links/splitLink.js +23 -6
- package/dist/links/splitLink.mjs +25 -2
- package/dist/links/types.d.ts +15 -14
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink.d.ts +44 -13
- package/dist/links/wsLink.d.ts.map +1 -1
- package/dist/links/wsLink.js +64 -24
- package/dist/links/wsLink.mjs +64 -22
- package/dist/links.d.ts +10 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/unstable-internals.d.ts +2 -0
- package/dist/unstable-internals.d.ts.map +1 -0
- package/dist/unstable-internals.js +7 -0
- package/dist/unstable-internals.mjs +1 -0
- package/package.json +26 -28
- package/src/TRPCClientError.ts +24 -13
- package/src/createTRPCClient.ts +58 -51
- package/src/createTRPCUntypedClient.ts +3 -5
- package/src/getFetch.ts +1 -1
- package/src/index.ts +2 -0
- package/src/internals/TRPCUntypedClient.ts +14 -84
- package/src/internals/dataLoader.ts +1 -1
- package/src/internals/getAbortController.ts +2 -2
- package/src/internals/transformer.ts +76 -0
- package/src/internals/types.ts +8 -1
- package/src/links/HTTPBatchLinkOptions.ts +17 -15
- package/src/links/httpBatchLink.ts +9 -8
- package/src/links/httpBatchStreamLink.ts +17 -17
- package/src/links/httpFormDataLink.ts +11 -12
- package/src/links/httpLink.ts +27 -19
- package/src/links/internals/createChain.ts +6 -2
- package/src/links/internals/createHTTPBatchLink.ts +24 -16
- package/src/links/internals/dedupeLink.ts +4 -3
- package/src/links/internals/getTextDecoder.ts +1 -1
- package/src/links/internals/httpUtils.ts +42 -21
- package/src/links/internals/parseJSONStream.ts +12 -14
- package/src/links/internals/retryLink.ts +4 -3
- package/src/links/loggerLink.ts +5 -5
- package/src/links/splitLink.ts +2 -2
- package/src/links/types.ts +27 -22
- package/src/links/wsLink.ts +124 -36
- package/src/links.ts +14 -0
- package/src/unstable-internals.ts +1 -0
- package/unstable-internals/index.d.ts +1 -0
- package/unstable-internals/index.js +1 -0
- package/dist/TRPCClientError-23c8aa93.js +0 -61
- package/dist/httpBatchLink-64fceaac.js +0 -251
- package/dist/httpBatchLink-92dab48e.js +0 -247
- package/dist/httpUtils-35e50476.js +0 -145
- package/dist/internals/isObject.d.ts +0 -2
- package/dist/internals/isObject.d.ts.map +0 -1
- package/dist/internals/retryDelay.d.ts +0 -2
- package/dist/internals/retryDelay.d.ts.map +0 -1
- package/dist/links/index.d.ts +0 -10
- package/dist/links/index.d.ts.map +0 -1
- package/dist/shared/index.d.ts +0 -2
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/index.js +0 -9
- package/dist/shared/index.mjs +0 -1
- package/dist/shared/transformResult.d.ts +0 -34
- package/dist/shared/transformResult.d.ts.map +0 -1
- package/dist/splitLink-0df96fdc.js +0 -41
- package/dist/transformResult-ace864b8.mjs +0 -58
- package/dist/transformResult-c1422cb5.js +0 -60
- package/dist/transformResult-dfce8f15.js +0 -61
- package/shared/index.d.ts +0 -1
- package/shared/index.js +0 -1
- package/src/internals/isObject.ts +0 -4
- package/src/internals/retryDelay.ts +0 -3
- package/src/links/index.ts +0 -14
- package/src/shared/index.ts +0 -1
- package/src/shared/transformResult.ts +0 -79
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createHTTPBatchLink } from './internals/createHTTPBatchLink.mjs';
|
|
2
|
+
import { getTextDecoder } from './internals/getTextDecoder.mjs';
|
|
3
|
+
import { streamingJsonHttpRequester } from './internals/parseJSONStream.mjs';
|
|
4
|
+
|
|
5
|
+
const streamRequester = (requesterOpts)=>{
|
|
6
|
+
const textDecoder = getTextDecoder(requesterOpts.opts.textDecoder);
|
|
7
|
+
return (batchOps, unitResolver)=>{
|
|
8
|
+
const path = batchOps.map((op)=>op.path).join(',');
|
|
9
|
+
const inputs = batchOps.map((op)=>op.input);
|
|
10
|
+
const { cancel , promise } = streamingJsonHttpRequester({
|
|
11
|
+
...requesterOpts,
|
|
12
|
+
textDecoder,
|
|
13
|
+
path,
|
|
14
|
+
inputs,
|
|
15
|
+
headers () {
|
|
16
|
+
if (!requesterOpts.opts.headers) {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
if (typeof requesterOpts.opts.headers === 'function') {
|
|
20
|
+
return requesterOpts.opts.headers({
|
|
21
|
+
opList: batchOps
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return requesterOpts.opts.headers;
|
|
25
|
+
}
|
|
26
|
+
}, (index, res)=>{
|
|
27
|
+
unitResolver(index, res);
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
/**
|
|
31
|
+
* return an empty array because the batchLoader expects an array of results
|
|
32
|
+
* but we've already called the `unitResolver` for each of them, there's
|
|
33
|
+
* nothing left to do here.
|
|
34
|
+
*/ promise: promise.then(()=>[]),
|
|
35
|
+
cancel
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const unstable_httpBatchStreamLink = createHTTPBatchLink(streamRequester);
|
|
40
|
+
|
|
41
|
+
export { unstable_httpBatchStreamLink };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const experimental_formDataLink: <TRouter extends import("@trpc/server").AnyRouter>(opts: import("./httpLink").HTTPLinkOptions) => import("./types").TRPCLink<TRouter>;
|
|
1
|
+
export declare const experimental_formDataLink: <TRouter extends import("@trpc/server/unstable-core-do-not-import").AnyRouter>(opts: import("./httpLink").HTTPLinkOptions<TRouter["_def"]["_config"]["$types"]>) => import("./types").TRPCLink<TRouter>;
|
|
2
2
|
//# sourceMappingURL=httpFormDataLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpFormDataLink.d.ts","sourceRoot":"","sources":["../../src/links/httpFormDataLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpFormDataLink.d.ts","sourceRoot":"","sources":["../../src/links/httpFormDataLink.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,yBAAyB,yMAEpC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var httpLink = require('./httpLink.js');
|
|
4
|
+
var httpUtils = require('./internals/httpUtils.js');
|
|
5
|
+
|
|
6
|
+
const formDataRequester = (opts)=>{
|
|
7
|
+
if (opts.type !== 'mutation') {
|
|
8
|
+
// TODO(?) handle formdata queries
|
|
9
|
+
throw new Error('We only handle mutations with formdata');
|
|
10
|
+
}
|
|
11
|
+
return httpUtils.httpRequest({
|
|
12
|
+
...opts,
|
|
13
|
+
getUrl () {
|
|
14
|
+
return `${opts.url}/${opts.path}`;
|
|
15
|
+
},
|
|
16
|
+
getBody (opts) {
|
|
17
|
+
if (!('input' in opts)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
if (!(opts.input instanceof FormData)) {
|
|
21
|
+
throw new Error('Input is not FormData');
|
|
22
|
+
}
|
|
23
|
+
return opts.input;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
const experimental_formDataLink = httpLink.httpLinkFactory({
|
|
28
|
+
requester: formDataRequester
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
exports.experimental_formDataLink = experimental_formDataLink;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { httpLinkFactory } from './httpLink.mjs';
|
|
2
|
+
import { httpRequest } from './internals/httpUtils.mjs';
|
|
3
|
+
|
|
4
|
+
const formDataRequester = (opts)=>{
|
|
5
|
+
if (opts.type !== 'mutation') {
|
|
6
|
+
// TODO(?) handle formdata queries
|
|
7
|
+
throw new Error('We only handle mutations with formdata');
|
|
8
|
+
}
|
|
9
|
+
return httpRequest({
|
|
10
|
+
...opts,
|
|
11
|
+
getUrl () {
|
|
12
|
+
return `${opts.url}/${opts.path}`;
|
|
13
|
+
},
|
|
14
|
+
getBody (opts) {
|
|
15
|
+
if (!('input' in opts)) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
if (!(opts.input instanceof FormData)) {
|
|
19
|
+
throw new Error('Input is not FormData');
|
|
20
|
+
}
|
|
21
|
+
return opts.input;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const experimental_formDataLink = httpLinkFactory({
|
|
26
|
+
requester: formDataRequester
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export { experimental_formDataLink };
|
package/dist/links/httpLink.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AnyRouter } from '@trpc/server';
|
|
2
|
-
import { HTTPLinkBaseOptions, Requester } from './internals/httpUtils';
|
|
3
|
-
import { HTTPHeaders, Operation, TRPCLink } from './types';
|
|
4
|
-
export
|
|
1
|
+
import type { AnyRootTypes, AnyRouter } from '@trpc/server/unstable-core-do-not-import';
|
|
2
|
+
import type { HTTPLinkBaseOptions, Requester } from './internals/httpUtils';
|
|
3
|
+
import type { HTTPHeaders, Operation, TRPCLink } from './types';
|
|
4
|
+
export type HTTPLinkOptions<TRoot extends AnyRootTypes> = HTTPLinkBaseOptions<TRoot> & {
|
|
5
5
|
/**
|
|
6
6
|
* Headers to be set on outgoing requests or a callback that of said headers
|
|
7
7
|
* @link http://trpc.io/docs/client/headers
|
|
@@ -9,12 +9,12 @@ export interface HTTPLinkOptions extends HTTPLinkBaseOptions {
|
|
|
9
9
|
headers?: HTTPHeaders | ((opts: {
|
|
10
10
|
op: Operation;
|
|
11
11
|
}) => HTTPHeaders | Promise<HTTPHeaders>);
|
|
12
|
-
}
|
|
12
|
+
};
|
|
13
13
|
export declare function httpLinkFactory(factoryOpts: {
|
|
14
14
|
requester: Requester;
|
|
15
|
-
}): <TRouter extends AnyRouter>(opts: HTTPLinkOptions) => TRPCLink<TRouter>;
|
|
15
|
+
}): <TRouter extends AnyRouter>(opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>) => TRPCLink<TRouter>;
|
|
16
16
|
/**
|
|
17
|
-
* @
|
|
17
|
+
* @link https://trpc.io/docs/v11/client/links/httpLink
|
|
18
18
|
*/
|
|
19
|
-
export declare const httpLink: <TRouter extends AnyRouter>(opts: HTTPLinkOptions) => TRPCLink<TRouter>;
|
|
19
|
+
export declare const httpLink: <TRouter extends AnyRouter>(opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>) => TRPCLink<TRouter>;
|
|
20
20
|
//# sourceMappingURL=httpLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpLink.d.ts","sourceRoot":"","sources":["../../src/links/httpLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"httpLink.d.ts","sourceRoot":"","sources":["../../src/links/httpLink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACV,MAAM,0CAA0C,CAAC;AAGlD,OAAO,KAAK,EACV,mBAAmB,EAEnB,SAAS,EACV,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,YAAY,IACpD,mBAAmB,CAAC,KAAK,CAAC,GAAG;IAC3B;;;OAGG;IACH,OAAO,CAAC,EACJ,WAAW,GACX,CAAC,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,SAAS,CAAA;KAAE,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;CACvE,CAAC;AAEJ,wBAAgB,eAAe,CAAC,WAAW,EAAE;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,qCAE3D,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,KAC1D,SAAS,OAAO,CAAC,CAwDrB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,oCA9DX,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,KAC1D,SAAS,OAAO,CA6DoD,CAAC"}
|
package/dist/links/httpLink.js
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var observable = require('@trpc/server/observable');
|
|
6
|
-
var
|
|
7
|
-
var TRPCClientError = require('../TRPCClientError
|
|
8
|
-
var httpUtils = require('
|
|
4
|
+
var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
|
|
5
|
+
var TRPCClientError = require('../TRPCClientError.js');
|
|
6
|
+
var httpUtils = require('./internals/httpUtils.js');
|
|
9
7
|
|
|
10
8
|
function httpLinkFactory(factoryOpts) {
|
|
11
9
|
return (opts)=>{
|
|
12
10
|
const resolvedOpts = httpUtils.resolveHTTPLinkOptions(opts);
|
|
13
|
-
return (
|
|
11
|
+
return ()=>({ op })=>observable.observable((observer)=>{
|
|
14
12
|
const { path , input , type } = op;
|
|
15
13
|
const { promise , cancel } = factoryOpts.requester({
|
|
16
14
|
...resolvedOpts,
|
|
17
|
-
runtime,
|
|
18
15
|
type,
|
|
19
16
|
path,
|
|
20
17
|
input,
|
|
@@ -33,7 +30,7 @@ function httpLinkFactory(factoryOpts) {
|
|
|
33
30
|
let meta = undefined;
|
|
34
31
|
promise.then((res)=>{
|
|
35
32
|
meta = res.meta;
|
|
36
|
-
const transformed =
|
|
33
|
+
const transformed = unstableCoreDoNotImport.transformResult(res.json, resolvedOpts.transformer.output);
|
|
37
34
|
if (!transformed.ok) {
|
|
38
35
|
observer.error(TRPCClientError.TRPCClientError.from(transformed.error, {
|
|
39
36
|
meta
|
|
@@ -57,7 +54,7 @@ function httpLinkFactory(factoryOpts) {
|
|
|
57
54
|
};
|
|
58
55
|
}
|
|
59
56
|
/**
|
|
60
|
-
* @
|
|
57
|
+
* @link https://trpc.io/docs/v11/client/links/httpLink
|
|
61
58
|
*/ const httpLink = httpLinkFactory({
|
|
62
59
|
requester: httpUtils.jsonHttpRequester
|
|
63
60
|
});
|
package/dist/links/httpLink.mjs
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { observable } from '@trpc/server/observable';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { transformResult } from '@trpc/server/unstable-core-do-not-import';
|
|
3
|
+
import { TRPCClientError } from '../TRPCClientError.mjs';
|
|
4
|
+
import { resolveHTTPLinkOptions, jsonHttpRequester } from './internals/httpUtils.mjs';
|
|
5
5
|
|
|
6
6
|
function httpLinkFactory(factoryOpts) {
|
|
7
7
|
return (opts)=>{
|
|
8
8
|
const resolvedOpts = resolveHTTPLinkOptions(opts);
|
|
9
|
-
return (
|
|
9
|
+
return ()=>({ op })=>observable((observer)=>{
|
|
10
10
|
const { path , input , type } = op;
|
|
11
11
|
const { promise , cancel } = factoryOpts.requester({
|
|
12
12
|
...resolvedOpts,
|
|
13
|
-
runtime,
|
|
14
13
|
type,
|
|
15
14
|
path,
|
|
16
15
|
input,
|
|
@@ -29,7 +28,7 @@ function httpLinkFactory(factoryOpts) {
|
|
|
29
28
|
let meta = undefined;
|
|
30
29
|
promise.then((res)=>{
|
|
31
30
|
meta = res.meta;
|
|
32
|
-
const transformed = transformResult(res.json,
|
|
31
|
+
const transformed = transformResult(res.json, resolvedOpts.transformer.output);
|
|
33
32
|
if (!transformed.ok) {
|
|
34
33
|
observer.error(TRPCClientError.from(transformed.error, {
|
|
35
34
|
meta
|
|
@@ -53,7 +52,7 @@ function httpLinkFactory(factoryOpts) {
|
|
|
53
52
|
};
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
56
|
-
* @
|
|
55
|
+
* @link https://trpc.io/docs/v11/client/links/httpLink
|
|
57
56
|
*/ const httpLink = httpLinkFactory({
|
|
58
57
|
requester: jsonHttpRequester
|
|
59
58
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyRouter } from '@trpc/server';
|
|
2
|
-
import { Operation, OperationLink, OperationResultObservable } from '../types';
|
|
1
|
+
import type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';
|
|
2
|
+
import type { Operation, OperationLink, OperationResultObservable } from '../types';
|
|
3
3
|
/** @internal */
|
|
4
4
|
export declare function createChain<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown>(opts: {
|
|
5
5
|
links: OperationLink<TRouter, TInput, TOutput>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createChain.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createChain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createChain.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createChain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAElB,gBAAgB;AAChB,wBAAgB,WAAW,CACzB,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,EACjB,IAAI,EAAE;IACN,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjD,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACvB,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAuB9C"}
|
|
@@ -23,26 +23,4 @@ var observable = require('@trpc/server/observable');
|
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
function asArray(value) {
|
|
27
|
-
return Array.isArray(value) ? value : [
|
|
28
|
-
value
|
|
29
|
-
];
|
|
30
|
-
}
|
|
31
|
-
function splitLink(opts) {
|
|
32
|
-
return (runtime)=>{
|
|
33
|
-
const yes = asArray(opts.true).map((link)=>link(runtime));
|
|
34
|
-
const no = asArray(opts.false).map((link)=>link(runtime));
|
|
35
|
-
return (props)=>{
|
|
36
|
-
return observable.observable((observer)=>{
|
|
37
|
-
const links = opts.condition(props.op) ? yes : no;
|
|
38
|
-
return createChain({
|
|
39
|
-
op: props.op,
|
|
40
|
-
links
|
|
41
|
-
}).subscribe(observer);
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
|
|
47
26
|
exports.createChain = createChain;
|
|
48
|
-
exports.splitLink = splitLink;
|
|
@@ -21,25 +21,4 @@ import { observable } from '@trpc/server/observable';
|
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
return Array.isArray(value) ? value : [
|
|
26
|
-
value
|
|
27
|
-
];
|
|
28
|
-
}
|
|
29
|
-
function splitLink(opts) {
|
|
30
|
-
return (runtime)=>{
|
|
31
|
-
const yes = asArray(opts.true).map((link)=>link(runtime));
|
|
32
|
-
const no = asArray(opts.false).map((link)=>link(runtime));
|
|
33
|
-
return (props)=>{
|
|
34
|
-
return observable((observer)=>{
|
|
35
|
-
const links = opts.condition(props.op) ? yes : no;
|
|
36
|
-
return createChain({
|
|
37
|
-
op: props.op,
|
|
38
|
-
links
|
|
39
|
-
}).subscribe(observer);
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export { createChain as c, splitLink as s };
|
|
24
|
+
export { createChain };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AnyRouter, ProcedureType } from '@trpc/server';
|
|
2
|
-
import { HTTPBatchLinkOptions } from '../HTTPBatchLinkOptions';
|
|
3
|
-
import { CancelFn, Operation, TRPCClientRuntime, TRPCLink } from '../types';
|
|
4
|
-
import { HTTPResult, ResolvedHTTPLinkOptions } from './httpUtils';
|
|
1
|
+
import type { AnyRootTypes, AnyRouter, inferClientTypes, ProcedureType } from '@trpc/server/unstable-core-do-not-import';
|
|
2
|
+
import type { HTTPBatchLinkOptions } from '../HTTPBatchLinkOptions';
|
|
3
|
+
import type { CancelFn, Operation, TRPCClientRuntime, TRPCLink } from '../types';
|
|
4
|
+
import type { HTTPResult, ResolvedHTTPLinkOptions } from './httpUtils';
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export type RequesterFn<TOptions extends HTTPBatchLinkOptions
|
|
8
|
+
export type RequesterFn<TOptions extends HTTPBatchLinkOptions<AnyRootTypes>> = (requesterOpts: ResolvedHTTPLinkOptions & {
|
|
9
9
|
runtime: TRPCClientRuntime;
|
|
10
10
|
type: ProcedureType;
|
|
11
11
|
opts: TOptions;
|
|
@@ -16,5 +16,5 @@ export type RequesterFn<TOptions extends HTTPBatchLinkOptions> = (requesterOpts:
|
|
|
16
16
|
/**
|
|
17
17
|
* @internal
|
|
18
18
|
*/
|
|
19
|
-
export declare function createHTTPBatchLink
|
|
19
|
+
export declare function createHTTPBatchLink(requester: RequesterFn<HTTPBatchLinkOptions<AnyRootTypes>>): <TRouter extends AnyRouter>(opts: HTTPBatchLinkOptions<inferClientTypes<TRouter>>) => TRPCLink<TRouter>;
|
|
20
20
|
//# sourceMappingURL=createHTTPBatchLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHTTPBatchLink.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createHTTPBatchLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createHTTPBatchLink.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createHTTPBatchLink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,aAAa,EACd,MAAM,0CAA0C,CAAC;AAIlD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACT,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGvE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAC7E,aAAa,EAAE,uBAAuB,GAAG;IACvC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB,KACE,CACH,QAAQ,EAAE,SAAS,EAAE,EACrB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,KAClE;IACH,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,WAAW,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,qCAGlD,qBAAqB,iBAAiB,OAAO,CAAC,CAAC,KACpD,SAAS,OAAO,CAAC,CAuFrB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var observable = require('@trpc/server/observable');
|
|
4
|
+
var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
|
|
5
|
+
var dataLoader = require('../../internals/dataLoader.js');
|
|
6
|
+
var TRPCClientError = require('../../TRPCClientError.js');
|
|
7
|
+
var httpUtils = require('./httpUtils.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/ function createHTTPBatchLink(requester) {
|
|
12
|
+
return function httpBatchLink(opts) {
|
|
13
|
+
const resolvedOpts = httpUtils.resolveHTTPLinkOptions(opts);
|
|
14
|
+
const maxURLLength = opts.maxURLLength ?? Infinity;
|
|
15
|
+
// initialized config
|
|
16
|
+
return (runtime)=>{
|
|
17
|
+
const batchLoader = (type)=>{
|
|
18
|
+
const validate = (batchOps)=>{
|
|
19
|
+
if (maxURLLength === Infinity) {
|
|
20
|
+
// escape hatch for quick calcs
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
const path = batchOps.map((op)=>op.path).join(',');
|
|
24
|
+
const inputs = batchOps.map((op)=>op.input);
|
|
25
|
+
const url = httpUtils.getUrl({
|
|
26
|
+
...resolvedOpts,
|
|
27
|
+
type,
|
|
28
|
+
path,
|
|
29
|
+
inputs
|
|
30
|
+
});
|
|
31
|
+
return url.length <= maxURLLength;
|
|
32
|
+
};
|
|
33
|
+
const fetch = requester({
|
|
34
|
+
...resolvedOpts,
|
|
35
|
+
runtime,
|
|
36
|
+
type,
|
|
37
|
+
opts
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
validate,
|
|
41
|
+
fetch
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const query = dataLoader.dataLoader(batchLoader('query'));
|
|
45
|
+
const mutation = dataLoader.dataLoader(batchLoader('mutation'));
|
|
46
|
+
const subscription = dataLoader.dataLoader(batchLoader('subscription'));
|
|
47
|
+
const loaders = {
|
|
48
|
+
query,
|
|
49
|
+
subscription,
|
|
50
|
+
mutation
|
|
51
|
+
};
|
|
52
|
+
return ({ op })=>{
|
|
53
|
+
return observable.observable((observer)=>{
|
|
54
|
+
const loader = loaders[op.type];
|
|
55
|
+
const { promise , cancel } = loader.load(op);
|
|
56
|
+
let _res = undefined;
|
|
57
|
+
promise.then((res)=>{
|
|
58
|
+
_res = res;
|
|
59
|
+
const transformed = unstableCoreDoNotImport.transformResult(res.json, resolvedOpts.transformer.output);
|
|
60
|
+
if (!transformed.ok) {
|
|
61
|
+
observer.error(TRPCClientError.TRPCClientError.from(transformed.error, {
|
|
62
|
+
meta: res.meta
|
|
63
|
+
}));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
observer.next({
|
|
67
|
+
context: res.meta,
|
|
68
|
+
result: transformed.result
|
|
69
|
+
});
|
|
70
|
+
observer.complete();
|
|
71
|
+
}).catch((err)=>{
|
|
72
|
+
observer.error(TRPCClientError.TRPCClientError.from(err, {
|
|
73
|
+
meta: _res?.meta
|
|
74
|
+
}));
|
|
75
|
+
});
|
|
76
|
+
return ()=>{
|
|
77
|
+
cancel();
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
exports.createHTTPBatchLink = createHTTPBatchLink;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { observable } from '@trpc/server/observable';
|
|
2
|
+
import { transformResult } from '@trpc/server/unstable-core-do-not-import';
|
|
3
|
+
import { dataLoader } from '../../internals/dataLoader.mjs';
|
|
4
|
+
import { TRPCClientError } from '../../TRPCClientError.mjs';
|
|
5
|
+
import { resolveHTTPLinkOptions, getUrl } from './httpUtils.mjs';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/ function createHTTPBatchLink(requester) {
|
|
10
|
+
return function httpBatchLink(opts) {
|
|
11
|
+
const resolvedOpts = resolveHTTPLinkOptions(opts);
|
|
12
|
+
const maxURLLength = opts.maxURLLength ?? Infinity;
|
|
13
|
+
// initialized config
|
|
14
|
+
return (runtime)=>{
|
|
15
|
+
const batchLoader = (type)=>{
|
|
16
|
+
const validate = (batchOps)=>{
|
|
17
|
+
if (maxURLLength === Infinity) {
|
|
18
|
+
// escape hatch for quick calcs
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
const path = batchOps.map((op)=>op.path).join(',');
|
|
22
|
+
const inputs = batchOps.map((op)=>op.input);
|
|
23
|
+
const url = getUrl({
|
|
24
|
+
...resolvedOpts,
|
|
25
|
+
type,
|
|
26
|
+
path,
|
|
27
|
+
inputs
|
|
28
|
+
});
|
|
29
|
+
return url.length <= maxURLLength;
|
|
30
|
+
};
|
|
31
|
+
const fetch = requester({
|
|
32
|
+
...resolvedOpts,
|
|
33
|
+
runtime,
|
|
34
|
+
type,
|
|
35
|
+
opts
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
validate,
|
|
39
|
+
fetch
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const query = dataLoader(batchLoader('query'));
|
|
43
|
+
const mutation = dataLoader(batchLoader('mutation'));
|
|
44
|
+
const subscription = dataLoader(batchLoader('subscription'));
|
|
45
|
+
const loaders = {
|
|
46
|
+
query,
|
|
47
|
+
subscription,
|
|
48
|
+
mutation
|
|
49
|
+
};
|
|
50
|
+
return ({ op })=>{
|
|
51
|
+
return observable((observer)=>{
|
|
52
|
+
const loader = loaders[op.type];
|
|
53
|
+
const { promise , cancel } = loader.load(op);
|
|
54
|
+
let _res = undefined;
|
|
55
|
+
promise.then((res)=>{
|
|
56
|
+
_res = res;
|
|
57
|
+
const transformed = transformResult(res.json, resolvedOpts.transformer.output);
|
|
58
|
+
if (!transformed.ok) {
|
|
59
|
+
observer.error(TRPCClientError.from(transformed.error, {
|
|
60
|
+
meta: res.meta
|
|
61
|
+
}));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
observer.next({
|
|
65
|
+
context: res.meta,
|
|
66
|
+
result: transformed.result
|
|
67
|
+
});
|
|
68
|
+
observer.complete();
|
|
69
|
+
}).catch((err)=>{
|
|
70
|
+
observer.error(TRPCClientError.from(err, {
|
|
71
|
+
meta: _res?.meta
|
|
72
|
+
}));
|
|
73
|
+
});
|
|
74
|
+
return ()=>{
|
|
75
|
+
cancel();
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { createHTTPBatchLink };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupeLink.d.ts","sourceRoot":"","sources":["../../../src/links/internals/dedupeLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dedupeLink.d.ts","sourceRoot":"","sources":["../../../src/links/internals/dedupeLink.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,GAAG,SAAS,KAClC,QAAQ,CAAC,OAAO,CAAC,CA2CrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTextDecoder.d.ts","sourceRoot":"","sources":["../../../src/links/internals/getTextDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getTextDecoder.d.ts","sourceRoot":"","sources":["../../../src/links/internals/getTextDecoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,wBAAgB,cAAc,CAC5B,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,gBAAgB,CAelB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function getTextDecoder(customTextDecoder) {
|
|
4
|
+
if (customTextDecoder) {
|
|
5
|
+
return customTextDecoder;
|
|
6
|
+
}
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
8
|
+
if (typeof window !== 'undefined' && window.TextDecoder) {
|
|
9
|
+
return new window.TextDecoder();
|
|
10
|
+
}
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
12
|
+
if (typeof globalThis !== 'undefined' && globalThis.TextDecoder) {
|
|
13
|
+
return new globalThis.TextDecoder();
|
|
14
|
+
}
|
|
15
|
+
throw new Error('No TextDecoder implementation found');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.getTextDecoder = getTextDecoder;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function getTextDecoder(customTextDecoder) {
|
|
2
|
+
if (customTextDecoder) {
|
|
3
|
+
return customTextDecoder;
|
|
4
|
+
}
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
6
|
+
if (typeof window !== 'undefined' && window.TextDecoder) {
|
|
7
|
+
return new window.TextDecoder();
|
|
8
|
+
}
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
10
|
+
if (typeof globalThis !== 'undefined' && globalThis.TextDecoder) {
|
|
11
|
+
return new globalThis.TextDecoder();
|
|
12
|
+
}
|
|
13
|
+
throw new Error('No TextDecoder implementation found');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { getTextDecoder };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ProcedureType } from '@trpc/server';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { TextDecoderEsque } from '../internals/streamingUtils';
|
|
5
|
-
import { HTTPHeaders, PromiseAndCancel
|
|
1
|
+
import type { AnyRootTypes, CombinedDataTransformer, ProcedureType, TRPCResponse } from '@trpc/server/unstable-core-do-not-import';
|
|
2
|
+
import type { AbortControllerEsque, AbortControllerInstanceEsque, FetchEsque, RequestInitEsque, ResponseEsque } from '../../internals/types';
|
|
3
|
+
import type { TransformerOptions } from '../../unstable-internals';
|
|
4
|
+
import type { TextDecoderEsque } from '../internals/streamingUtils';
|
|
5
|
+
import type { HTTPHeaders, PromiseAndCancel } from '../types';
|
|
6
6
|
/**
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export type HTTPLinkBaseOptions<TRoot extends Pick<AnyRootTypes, 'transformer'>> = {
|
|
10
10
|
url: string | URL;
|
|
11
11
|
/**
|
|
12
12
|
* Add ponyfill for fetch
|
|
@@ -16,13 +16,21 @@ export interface HTTPLinkBaseOptions {
|
|
|
16
16
|
* Add ponyfill for AbortController
|
|
17
17
|
*/
|
|
18
18
|
AbortController?: AbortControllerEsque | null;
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Send all requests `as POST`s requests regardless of the procedure type
|
|
21
|
+
* The HTTP handler must separately allow overriding the method. See:
|
|
22
|
+
* @link https://trpc.io/docs/rpc
|
|
23
|
+
*/
|
|
24
|
+
methodOverride?: 'POST';
|
|
25
|
+
} & TransformerOptions<TRoot>;
|
|
20
26
|
export interface ResolvedHTTPLinkOptions {
|
|
21
27
|
url: string;
|
|
22
28
|
fetch?: FetchEsque;
|
|
23
29
|
AbortController: AbortControllerEsque | null;
|
|
30
|
+
transformer: CombinedDataTransformer;
|
|
31
|
+
methodOverride?: 'POST';
|
|
24
32
|
}
|
|
25
|
-
export declare function resolveHTTPLinkOptions(opts: HTTPLinkBaseOptions): ResolvedHTTPLinkOptions;
|
|
33
|
+
export declare function resolveHTTPLinkOptions(opts: HTTPLinkBaseOptions<AnyRootTypes>): ResolvedHTTPLinkOptions;
|
|
26
34
|
export interface HTTPResult {
|
|
27
35
|
json: TRPCResponse;
|
|
28
36
|
meta: {
|
|
@@ -31,7 +39,7 @@ export interface HTTPResult {
|
|
|
31
39
|
};
|
|
32
40
|
}
|
|
33
41
|
type GetInputOptions = {
|
|
34
|
-
|
|
42
|
+
transformer: CombinedDataTransformer;
|
|
35
43
|
} & ({
|
|
36
44
|
input: unknown;
|
|
37
45
|
} | {
|
|
@@ -41,8 +49,8 @@ export type HTTPBaseRequestOptions = GetInputOptions & ResolvedHTTPLinkOptions &
|
|
|
41
49
|
type: ProcedureType;
|
|
42
50
|
path: string;
|
|
43
51
|
};
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
type GetUrl = (opts: HTTPBaseRequestOptions) => string;
|
|
53
|
+
type GetBody = (opts: HTTPBaseRequestOptions) => RequestInitEsque['body'];
|
|
46
54
|
export type ContentOptions = {
|
|
47
55
|
batchModeHeader?: 'stream';
|
|
48
56
|
contentTypeHeader?: string;
|