@trpc/client 10.0.0-proxy-alpha.72 → 10.0.0-proxy-alpha.75
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/createTRPCClientProxy.d.ts +18 -16
- package/dist/createTRPCClientProxy.d.ts.map +1 -1
- package/dist/index.js +28 -28
- package/dist/index.mjs +28 -28
- package/dist/internals/TRPCClient.d.ts +16 -27
- package/dist/internals/TRPCClient.d.ts.map +1 -1
- package/dist/links/wsLink.d.ts +3 -1
- package/dist/links/wsLink.d.ts.map +1 -1
- package/dist/links/wsLink.js +4 -2
- package/dist/links/wsLink.mjs +4 -2
- package/package.json +4 -4
- package/src/createTRPCClientProxy.ts +15 -12
- package/src/internals/TRPCClient.ts +54 -78
- package/src/links/wsLink.ts +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnyRouter,
|
|
1
|
+
import type { AnyRouter, Procedure, ProcedureArgs, ProcedureRouterRecord, inferProcedureOutput } from '@trpc/server';
|
|
2
2
|
import type { Unsubscribable, inferObservableValue } from '@trpc/server/observable';
|
|
3
3
|
import { LegacyV9ProcedureTag } from '@trpc/server/shared';
|
|
4
4
|
import { TRPCClientError } from './TRPCClientError';
|
|
@@ -10,29 +10,31 @@ declare type SubscriptionResolver<TProcedure extends Procedure<any>, TRouter ext
|
|
|
10
10
|
input: ProcedureArgs<TProcedure['_def']>[0],
|
|
11
11
|
opts: ProcedureArgs<TProcedure['_def']>[1] & Partial<TRPCSubscriptionObserver<inferObservableValue<inferProcedureOutput<TProcedure>>, TRPCClientError<TRouter>>>
|
|
12
12
|
]) => Unsubscribable;
|
|
13
|
-
declare type DecorateProcedure<TProcedure extends Procedure<any>, TRouter extends AnyRouter> =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
13
|
+
declare type DecorateProcedure<TProcedure extends Procedure<any>, TRouter extends AnyRouter> = TProcedure extends {
|
|
14
|
+
_type: 'query';
|
|
15
|
+
} ? {
|
|
16
|
+
query: Resolver<TProcedure>;
|
|
17
|
+
} : TProcedure extends {
|
|
18
|
+
_type: 'mutation';
|
|
19
|
+
} ? {
|
|
20
|
+
mutate: Resolver<TProcedure>;
|
|
21
|
+
} : TProcedure extends {
|
|
22
|
+
_type: 'subscription';
|
|
23
|
+
} ? {
|
|
24
|
+
subscribe: SubscriptionResolver<TProcedure, TRouter>;
|
|
25
|
+
} : never;
|
|
24
26
|
declare type assertProcedure<T> = T extends Procedure<any> ? T : never;
|
|
25
27
|
/**
|
|
26
28
|
* @internal
|
|
27
29
|
*/
|
|
28
|
-
declare type DecoratedProcedureRecord<TProcedures extends ProcedureRouterRecord, TRouter extends AnyRouter> =
|
|
30
|
+
declare type DecoratedProcedureRecord<TProcedures extends ProcedureRouterRecord, TRouter extends AnyRouter> = {
|
|
29
31
|
[TKey in keyof TProcedures]: TProcedures[TKey] extends LegacyV9ProcedureTag ? never : TProcedures[TKey] extends AnyRouter ? DecoratedProcedureRecord<TProcedures[TKey]['_def']['record'], TProcedures[TKey]> : DecorateProcedure<assertProcedure<TProcedures[TKey]>, TRouter>;
|
|
30
|
-
}
|
|
32
|
+
};
|
|
31
33
|
/**
|
|
32
34
|
* @deprecated use `createTRPCProxyClient` instead
|
|
33
35
|
* @internal
|
|
34
36
|
*/
|
|
35
|
-
export declare function createTRPCClientProxy<TRouter extends AnyRouter>(client: Client<TRouter>):
|
|
36
|
-
export declare function createTRPCProxyClient<TRouter extends AnyRouter>(opts: CreateTRPCClientOptions<TRouter>):
|
|
37
|
+
export declare function createTRPCClientProxy<TRouter extends AnyRouter>(client: Client<TRouter>): DecoratedProcedureRecord<TRouter["_def"]["record"], TRouter>;
|
|
38
|
+
export declare function createTRPCProxyClient<TRouter extends AnyRouter>(opts: CreateTRPCClientOptions<TRouter>): DecoratedProcedureRecord<TRouter["_def"]["record"], TRouter>;
|
|
37
39
|
export {};
|
|
38
40
|
//# sourceMappingURL=createTRPCClientProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTRPCClientProxy.d.ts","sourceRoot":"","sources":["../src/createTRPCClientProxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"createTRPCClientProxy.d.ts","sourceRoot":"","sources":["../src/createTRPCClientProxy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -163,28 +163,22 @@ class TRPCClient {
|
|
|
163
163
|
});
|
|
164
164
|
return abortablePromise;
|
|
165
165
|
}
|
|
166
|
-
query(path,
|
|
167
|
-
// FIXME: Should be inferred from `args`
|
|
168
|
-
const context = args[1]?.context;
|
|
169
|
-
const signal = args[1]?.signal;
|
|
166
|
+
query(path, input, opts) {
|
|
170
167
|
return this.requestAsPromise({
|
|
171
168
|
type: 'query',
|
|
172
169
|
path,
|
|
173
|
-
input:
|
|
174
|
-
context,
|
|
175
|
-
signal
|
|
170
|
+
input: input,
|
|
171
|
+
context: opts?.context,
|
|
172
|
+
signal: opts?.signal
|
|
176
173
|
});
|
|
177
174
|
}
|
|
178
|
-
mutation(path,
|
|
179
|
-
// FIXME: Should be inferred from `args`
|
|
180
|
-
const context = args[1]?.context;
|
|
181
|
-
const signal = args[1]?.signal;
|
|
175
|
+
mutation(path, input, opts) {
|
|
182
176
|
return this.requestAsPromise({
|
|
183
177
|
type: 'mutation',
|
|
184
178
|
path,
|
|
185
|
-
input:
|
|
186
|
-
context,
|
|
187
|
-
signal
|
|
179
|
+
input: input,
|
|
180
|
+
context: opts?.context,
|
|
181
|
+
signal: opts?.signal
|
|
188
182
|
});
|
|
189
183
|
}
|
|
190
184
|
subscription(path, input, opts) {
|
|
@@ -223,28 +217,34 @@ class TRPCClient {
|
|
|
223
217
|
}
|
|
224
218
|
return ()=>({});
|
|
225
219
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
220
|
+
function getTransformer() {
|
|
221
|
+
if (!opts.transformer) return {
|
|
222
|
+
serialize: (data)=>data,
|
|
223
|
+
deserialize: (data)=>data
|
|
224
|
+
};
|
|
225
|
+
if ('input' in opts.transformer) return {
|
|
226
|
+
serialize: opts.transformer.input.serialize,
|
|
227
|
+
deserialize: opts.transformer.output.deserialize
|
|
228
|
+
};
|
|
229
|
+
return opts.transformer;
|
|
230
|
+
}
|
|
233
231
|
this.runtime = {
|
|
234
232
|
AbortController: AC,
|
|
235
233
|
fetch: _fetch,
|
|
236
234
|
headers: getHeadersFn(),
|
|
237
|
-
transformer
|
|
235
|
+
transformer: getTransformer()
|
|
238
236
|
};
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
237
|
+
const getLinks = ()=>{
|
|
238
|
+
if (opts.links) {
|
|
239
|
+
return opts.links.map((link)=>link(this.runtime));
|
|
240
|
+
}
|
|
241
|
+
return [
|
|
243
242
|
links_httpBatchLink.httpBatchLink({
|
|
244
243
|
url: opts.url
|
|
245
|
-
})(this.runtime)
|
|
244
|
+
})(this.runtime)
|
|
246
245
|
];
|
|
247
|
-
}
|
|
246
|
+
};
|
|
247
|
+
this.links = getLinks();
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
|
package/dist/index.mjs
CHANGED
|
@@ -162,28 +162,22 @@ class TRPCClient {
|
|
|
162
162
|
});
|
|
163
163
|
return abortablePromise;
|
|
164
164
|
}
|
|
165
|
-
query(path,
|
|
166
|
-
// FIXME: Should be inferred from `args`
|
|
167
|
-
const context = args[1]?.context;
|
|
168
|
-
const signal = args[1]?.signal;
|
|
165
|
+
query(path, input, opts) {
|
|
169
166
|
return this.requestAsPromise({
|
|
170
167
|
type: 'query',
|
|
171
168
|
path,
|
|
172
|
-
input:
|
|
173
|
-
context,
|
|
174
|
-
signal
|
|
169
|
+
input: input,
|
|
170
|
+
context: opts?.context,
|
|
171
|
+
signal: opts?.signal
|
|
175
172
|
});
|
|
176
173
|
}
|
|
177
|
-
mutation(path,
|
|
178
|
-
// FIXME: Should be inferred from `args`
|
|
179
|
-
const context = args[1]?.context;
|
|
180
|
-
const signal = args[1]?.signal;
|
|
174
|
+
mutation(path, input, opts) {
|
|
181
175
|
return this.requestAsPromise({
|
|
182
176
|
type: 'mutation',
|
|
183
177
|
path,
|
|
184
|
-
input:
|
|
185
|
-
context,
|
|
186
|
-
signal
|
|
178
|
+
input: input,
|
|
179
|
+
context: opts?.context,
|
|
180
|
+
signal: opts?.signal
|
|
187
181
|
});
|
|
188
182
|
}
|
|
189
183
|
subscription(path, input, opts) {
|
|
@@ -222,28 +216,34 @@ class TRPCClient {
|
|
|
222
216
|
}
|
|
223
217
|
return ()=>({});
|
|
224
218
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
219
|
+
function getTransformer() {
|
|
220
|
+
if (!opts.transformer) return {
|
|
221
|
+
serialize: (data)=>data,
|
|
222
|
+
deserialize: (data)=>data
|
|
223
|
+
};
|
|
224
|
+
if ('input' in opts.transformer) return {
|
|
225
|
+
serialize: opts.transformer.input.serialize,
|
|
226
|
+
deserialize: opts.transformer.output.deserialize
|
|
227
|
+
};
|
|
228
|
+
return opts.transformer;
|
|
229
|
+
}
|
|
232
230
|
this.runtime = {
|
|
233
231
|
AbortController: AC,
|
|
234
232
|
fetch: _fetch,
|
|
235
233
|
headers: getHeadersFn(),
|
|
236
|
-
transformer
|
|
234
|
+
transformer: getTransformer()
|
|
237
235
|
};
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
236
|
+
const getLinks = ()=>{
|
|
237
|
+
if (opts.links) {
|
|
238
|
+
return opts.links.map((link)=>link(this.runtime));
|
|
239
|
+
}
|
|
240
|
+
return [
|
|
242
241
|
httpBatchLink({
|
|
243
242
|
url: opts.url
|
|
244
|
-
})(this.runtime)
|
|
243
|
+
})(this.runtime)
|
|
245
244
|
];
|
|
246
|
-
}
|
|
245
|
+
};
|
|
246
|
+
this.links = getLinks();
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyRouter, ClientDataTransformerOptions,
|
|
1
|
+
import { AnyRouter, ClientDataTransformerOptions, inferProcedureInput, inferProcedureOutput, inferSubscriptionOutput } from '@trpc/server';
|
|
2
2
|
import { ProcedureRecord } from '@trpc/server';
|
|
3
3
|
import { Unsubscribable } from '@trpc/server/observable';
|
|
4
4
|
import { TRPCClientError } from '../TRPCClientError';
|
|
@@ -9,11 +9,12 @@ interface CreateTRPCClientBaseOptions {
|
|
|
9
9
|
*/
|
|
10
10
|
fetch?: typeof fetch;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Add ponyfill for AbortController
|
|
13
13
|
*/
|
|
14
14
|
AbortController?: typeof AbortController;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Headers to be set on outgoing requests or a callback that of said headers
|
|
17
|
+
* @link http://localhost:3000/docs/v10/header
|
|
17
18
|
*/
|
|
18
19
|
headers?: HTTPHeaders | (() => HTTPHeaders | Promise<HTTPHeaders>);
|
|
19
20
|
/**
|
|
@@ -22,20 +23,6 @@ interface CreateTRPCClientBaseOptions {
|
|
|
22
23
|
**/
|
|
23
24
|
transformer?: ClientDataTransformerOptions;
|
|
24
25
|
}
|
|
25
|
-
/** @internal */
|
|
26
|
-
export interface CreateTRPCClientWithURLOptions extends CreateTRPCClientBaseOptions {
|
|
27
|
-
/**
|
|
28
|
-
* HTTP URL of API
|
|
29
|
-
**/
|
|
30
|
-
url: string;
|
|
31
|
-
}
|
|
32
|
-
/** @internal */
|
|
33
|
-
export interface CreateTRPCClientWithLinksOptions<TRouter extends AnyRouter> extends CreateTRPCClientBaseOptions {
|
|
34
|
-
/**
|
|
35
|
-
* @link https://trpc.io/docs/links
|
|
36
|
-
**/
|
|
37
|
-
links: TRPCLink<TRouter>[];
|
|
38
|
-
}
|
|
39
26
|
export interface TRPCRequestOptions {
|
|
40
27
|
/**
|
|
41
28
|
* Pass additional context to links
|
|
@@ -50,8 +37,16 @@ export interface TRPCSubscriptionObserver<TValue, TError> {
|
|
|
50
37
|
onStopped: () => void;
|
|
51
38
|
onComplete: () => void;
|
|
52
39
|
}
|
|
53
|
-
/**
|
|
54
|
-
|
|
40
|
+
/**
|
|
41
|
+
* This type prohibits `url` from being provided along with `links`
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export declare type CreateTRPCClientOptions<TRouter extends AnyRouter> = CreateTRPCClientBaseOptions & ({
|
|
45
|
+
links: TRPCLink<TRouter>[];
|
|
46
|
+
} | {
|
|
47
|
+
url: string;
|
|
48
|
+
links?: never;
|
|
49
|
+
});
|
|
55
50
|
export declare type AssertType<T, K> = T extends K ? T : never;
|
|
56
51
|
/**
|
|
57
52
|
* @deprecated
|
|
@@ -69,14 +64,8 @@ export declare class TRPCClient<TRouter extends AnyRouter> {
|
|
|
69
64
|
constructor(opts: CreateTRPCClientOptions<TRouter>);
|
|
70
65
|
private $request;
|
|
71
66
|
private requestAsPromise;
|
|
72
|
-
query<TQueries extends AssertLegacyDef<TRouter>['queries'], TPath extends string & keyof TQueries>(path: TPath,
|
|
73
|
-
|
|
74
|
-
TRPCRequestOptions?
|
|
75
|
-
]): Promise<inferProcedureOutput<TQueries[TPath]>>;
|
|
76
|
-
mutation<TMutations extends AssertLegacyDef<TRouter>['mutations'], TPath extends string & keyof TMutations>(path: TPath, ...args: [
|
|
77
|
-
...inferHandlerInput<AssertType<TMutations, ProcedureRecord>[TPath]>,
|
|
78
|
-
TRPCRequestOptions?
|
|
79
|
-
]): Promise<inferProcedureOutput<TMutations[TPath]>>;
|
|
67
|
+
query<TQueries extends AssertLegacyDef<TRouter>['queries'], TPath extends string & keyof TQueries, TInput extends inferProcedureInput<AssertType<TQueries, ProcedureRecord>[TPath]>>(path: TPath, input?: TInput, opts?: TRPCRequestOptions): Promise<inferProcedureOutput<TQueries[TPath]>>;
|
|
68
|
+
mutation<TMutations extends AssertLegacyDef<TRouter>['mutations'], TPath extends string & keyof TMutations, TInput extends inferProcedureInput<AssertType<TMutations, ProcedureRecord>[TPath]>>(path: TPath, input?: TInput, opts?: TRPCRequestOptions): Promise<inferProcedureOutput<TMutations[TPath]>>;
|
|
80
69
|
subscription<TSubscriptions extends AssertLegacyDef<TRouter>['subscriptions'], TPath extends string & keyof TSubscriptions, TOutput extends inferSubscriptionOutput<TRouter, TPath>, TInput extends inferProcedureInput<AssertType<TSubscriptions, ProcedureRecord>[TPath]>>(path: TPath, input: TInput, opts: TRPCRequestOptions & Partial<TRPCSubscriptionObserver<TOutput, TRPCClientError<TRouter>>>): Unsubscribable;
|
|
81
70
|
}
|
|
82
71
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/internals/TRPCClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,4BAA4B,EAE5B,
|
|
1
|
+
{"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/internals/TRPCClient.ts"],"names":[],"mappings":"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"}
|
package/dist/links/wsLink.d.ts
CHANGED
|
@@ -11,7 +11,9 @@ export interface WebSocketClientOptions {
|
|
|
11
11
|
WebSocket?: typeof WebSocket;
|
|
12
12
|
retryDelayMs?: typeof retryDelay;
|
|
13
13
|
onOpen?: () => void;
|
|
14
|
-
onClose?: (
|
|
14
|
+
onClose?: (cause?: {
|
|
15
|
+
code?: number;
|
|
16
|
+
}) => void;
|
|
15
17
|
}
|
|
16
18
|
export declare function createWSClient(opts: WebSocketClientOptions): {
|
|
17
19
|
close: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAc,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAKL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,aAAK,gBAAgB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,mBAAmB,CAC7E,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;AAEF,aAAK,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,QAAQ,CACpE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,eAAe,CAAC,OAAO,CAAC,CACzB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAc,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAKL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,aAAK,gBAAgB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,mBAAmB,CAC7E,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;AAEF,aAAK,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,QAAQ,CACpE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,eAAe,CAAC,OAAO,CAAC,CACzB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,sBAAsB;;kBAuMpC,SAAS,wDAA0B,aAAa;;EAiDtE;AACD,oBAAY,mBAAmB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAiBD,wBAAgB,MAAM,CAAC,OAAO,SAAS,SAAS,EAC9C,IAAI,EAAE,oBAAoB,GACzB,QAAQ,CAAC,OAAO,CAAC,CA4DnB"}
|
package/dist/links/wsLink.js
CHANGED
|
@@ -134,9 +134,11 @@ function createWSClient(opts) {
|
|
|
134
134
|
closeIfNoPending(conn);
|
|
135
135
|
}
|
|
136
136
|
});
|
|
137
|
-
conn.addEventListener('close', ()=>{
|
|
137
|
+
conn.addEventListener('close', ({ code })=>{
|
|
138
138
|
if (state === 'open') {
|
|
139
|
-
onClose?.(
|
|
139
|
+
onClose?.({
|
|
140
|
+
code
|
|
141
|
+
});
|
|
140
142
|
}
|
|
141
143
|
if (activeConnection === conn) {
|
|
142
144
|
// connection might have been replaced already
|
package/dist/links/wsLink.mjs
CHANGED
|
@@ -130,9 +130,11 @@ function createWSClient(opts) {
|
|
|
130
130
|
closeIfNoPending(conn);
|
|
131
131
|
}
|
|
132
132
|
});
|
|
133
|
-
conn.addEventListener('close', ()=>{
|
|
133
|
+
conn.addEventListener('close', ({ code })=>{
|
|
134
134
|
if (state === 'open') {
|
|
135
|
-
onClose?.(
|
|
135
|
+
onClose?.({
|
|
136
|
+
code
|
|
137
|
+
});
|
|
136
138
|
}
|
|
137
139
|
if (activeConnection === conn) {
|
|
138
140
|
// connection might have been replaced already
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/client",
|
|
3
|
-
"version": "10.0.0-proxy-alpha.
|
|
3
|
+
"version": "10.0.0-proxy-alpha.75",
|
|
4
4
|
"description": "tRPC Client lib",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"ts-watch": "tsc --project tsconfig.watch.json"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
|
-
"@trpc/server": "10.0.0-proxy-alpha.
|
|
66
|
+
"@trpc/server": "10.0.0-proxy-alpha.75"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@trpc/server": "10.0.0-proxy-alpha.
|
|
69
|
+
"@trpc/server": "10.0.0-proxy-alpha.75"
|
|
70
70
|
},
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "462c77f9c422fd44aa065566b317cd4e1a090848"
|
|
75
75
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
import type {
|
|
5
5
|
AnyRouter,
|
|
6
|
-
OmitNeverKeys,
|
|
7
6
|
Procedure,
|
|
8
7
|
ProcedureArgs,
|
|
9
8
|
ProcedureRouterRecord,
|
|
@@ -48,15 +47,19 @@ type SubscriptionResolver<
|
|
|
48
47
|
type DecorateProcedure<
|
|
49
48
|
TProcedure extends Procedure<any>,
|
|
50
49
|
TRouter extends AnyRouter,
|
|
51
|
-
> =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
50
|
+
> = TProcedure extends { _type: 'query' }
|
|
51
|
+
? {
|
|
52
|
+
query: Resolver<TProcedure>;
|
|
53
|
+
}
|
|
54
|
+
: TProcedure extends { _type: 'mutation' }
|
|
55
|
+
? {
|
|
56
|
+
mutate: Resolver<TProcedure>;
|
|
57
|
+
}
|
|
58
|
+
: TProcedure extends { _type: 'subscription' }
|
|
59
|
+
? {
|
|
60
|
+
subscribe: SubscriptionResolver<TProcedure, TRouter>;
|
|
61
|
+
}
|
|
62
|
+
: never;
|
|
60
63
|
|
|
61
64
|
type assertProcedure<T> = T extends Procedure<any> ? T : never;
|
|
62
65
|
|
|
@@ -66,7 +69,7 @@ type assertProcedure<T> = T extends Procedure<any> ? T : never;
|
|
|
66
69
|
type DecoratedProcedureRecord<
|
|
67
70
|
TProcedures extends ProcedureRouterRecord,
|
|
68
71
|
TRouter extends AnyRouter,
|
|
69
|
-
> =
|
|
72
|
+
> = {
|
|
70
73
|
[TKey in keyof TProcedures]: TProcedures[TKey] extends LegacyV9ProcedureTag
|
|
71
74
|
? never
|
|
72
75
|
: TProcedures[TKey] extends AnyRouter
|
|
@@ -75,7 +78,7 @@ type DecoratedProcedureRecord<
|
|
|
75
78
|
TProcedures[TKey]
|
|
76
79
|
>
|
|
77
80
|
: DecorateProcedure<assertProcedure<TProcedures[TKey]>, TRouter>;
|
|
78
|
-
}
|
|
81
|
+
};
|
|
79
82
|
|
|
80
83
|
const clientCallTypeMap: Record<
|
|
81
84
|
keyof DecorateProcedure<any, any>,
|
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
AnyRouter,
|
|
3
3
|
ClientDataTransformerOptions,
|
|
4
4
|
DataTransformer,
|
|
5
|
-
inferHandlerInput,
|
|
6
5
|
inferProcedureInput,
|
|
7
6
|
inferProcedureOutput,
|
|
8
7
|
inferSubscriptionOutput,
|
|
@@ -33,11 +32,12 @@ interface CreateTRPCClientBaseOptions {
|
|
|
33
32
|
*/
|
|
34
33
|
fetch?: typeof fetch;
|
|
35
34
|
/**
|
|
36
|
-
*
|
|
35
|
+
* Add ponyfill for AbortController
|
|
37
36
|
*/
|
|
38
37
|
AbortController?: typeof AbortController;
|
|
39
38
|
/**
|
|
40
|
-
*
|
|
39
|
+
* Headers to be set on outgoing requests or a callback that of said headers
|
|
40
|
+
* @link http://localhost:3000/docs/v10/header
|
|
41
41
|
*/
|
|
42
42
|
headers?: HTTPHeaders | (() => HTTPHeaders | Promise<HTTPHeaders>);
|
|
43
43
|
/**
|
|
@@ -47,24 +47,6 @@ interface CreateTRPCClientBaseOptions {
|
|
|
47
47
|
transformer?: ClientDataTransformerOptions;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
/** @internal */
|
|
51
|
-
export interface CreateTRPCClientWithURLOptions
|
|
52
|
-
extends CreateTRPCClientBaseOptions {
|
|
53
|
-
/**
|
|
54
|
-
* HTTP URL of API
|
|
55
|
-
**/
|
|
56
|
-
url: string;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/** @internal */
|
|
60
|
-
export interface CreateTRPCClientWithLinksOptions<TRouter extends AnyRouter>
|
|
61
|
-
extends CreateTRPCClientBaseOptions {
|
|
62
|
-
/**
|
|
63
|
-
* @link https://trpc.io/docs/links
|
|
64
|
-
**/
|
|
65
|
-
links: TRPCLink<TRouter>[];
|
|
66
|
-
}
|
|
67
|
-
|
|
68
50
|
type TRPCType = 'subscription' | 'query' | 'mutation';
|
|
69
51
|
export interface TRPCRequestOptions {
|
|
70
52
|
/**
|
|
@@ -82,10 +64,21 @@ export interface TRPCSubscriptionObserver<TValue, TError> {
|
|
|
82
64
|
onComplete: () => void;
|
|
83
65
|
}
|
|
84
66
|
|
|
85
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* This type prohibits `url` from being provided along with `links`
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
86
71
|
export type CreateTRPCClientOptions<TRouter extends AnyRouter> =
|
|
87
|
-
|
|
|
88
|
-
|
|
72
|
+
| CreateTRPCClientBaseOptions &
|
|
73
|
+
(
|
|
74
|
+
| {
|
|
75
|
+
links: TRPCLink<TRouter>[];
|
|
76
|
+
}
|
|
77
|
+
| {
|
|
78
|
+
url: string;
|
|
79
|
+
links?: never;
|
|
80
|
+
}
|
|
81
|
+
);
|
|
89
82
|
|
|
90
83
|
export type AssertType<T, K> = T extends K ? T : never;
|
|
91
84
|
/**
|
|
@@ -124,34 +117,35 @@ export class TRPCClient<TRouter extends AnyRouter> {
|
|
|
124
117
|
return () => ({});
|
|
125
118
|
}
|
|
126
119
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
serialize: opts.transformer.input.serialize,
|
|
131
|
-
deserialize: opts.transformer.output.deserialize,
|
|
132
|
-
}
|
|
133
|
-
: opts.transformer
|
|
134
|
-
: {
|
|
120
|
+
function getTransformer(): DataTransformer {
|
|
121
|
+
if (!opts.transformer)
|
|
122
|
+
return {
|
|
135
123
|
serialize: (data) => data,
|
|
136
124
|
deserialize: (data) => data,
|
|
137
125
|
};
|
|
126
|
+
if ('input' in opts.transformer)
|
|
127
|
+
return {
|
|
128
|
+
serialize: opts.transformer.input.serialize,
|
|
129
|
+
deserialize: opts.transformer.output.deserialize,
|
|
130
|
+
};
|
|
131
|
+
return opts.transformer;
|
|
132
|
+
}
|
|
138
133
|
|
|
139
134
|
this.runtime = {
|
|
140
135
|
AbortController: AC,
|
|
141
136
|
fetch: _fetch,
|
|
142
137
|
headers: getHeadersFn(),
|
|
143
|
-
transformer,
|
|
138
|
+
transformer: getTransformer(),
|
|
144
139
|
};
|
|
145
140
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
141
|
+
const getLinks = (): OperationLink<TRouter>[] => {
|
|
142
|
+
if (opts.links) {
|
|
143
|
+
return opts.links.map((link) => link(this.runtime));
|
|
144
|
+
}
|
|
145
|
+
return [httpBatchLink({ url: opts.url })(this.runtime)];
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
this.links = getLinks();
|
|
155
149
|
}
|
|
156
150
|
|
|
157
151
|
private $request<TInput = unknown, TOutput = unknown>({
|
|
@@ -205,51 +199,33 @@ export class TRPCClient<TRouter extends AnyRouter> {
|
|
|
205
199
|
public query<
|
|
206
200
|
TQueries extends AssertLegacyDef<TRouter>['queries'],
|
|
207
201
|
TPath extends string & keyof TQueries,
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
) {
|
|
215
|
-
// FIXME: Should be inferred from `args`
|
|
216
|
-
const context = (args[1] as TRPCRequestOptions | undefined)?.context;
|
|
217
|
-
const signal = (args[1] as TRPCRequestOptions | undefined)?.signal;
|
|
218
|
-
|
|
219
|
-
return this.requestAsPromise<
|
|
220
|
-
inferHandlerInput<AssertType<TQueries, ProcedureRecord>[TPath]>,
|
|
221
|
-
inferProcedureOutput<TQueries[TPath]>
|
|
222
|
-
>({
|
|
202
|
+
TInput extends inferProcedureInput<
|
|
203
|
+
AssertType<TQueries, ProcedureRecord>[TPath]
|
|
204
|
+
>,
|
|
205
|
+
>(path: TPath, input?: TInput, opts?: TRPCRequestOptions) {
|
|
206
|
+
type TOutput = inferProcedureOutput<TQueries[TPath]>;
|
|
207
|
+
return this.requestAsPromise<TInput, TOutput>({
|
|
223
208
|
type: 'query',
|
|
224
209
|
path,
|
|
225
|
-
input:
|
|
226
|
-
context,
|
|
227
|
-
signal,
|
|
210
|
+
input: input as TInput,
|
|
211
|
+
context: opts?.context,
|
|
212
|
+
signal: opts?.signal,
|
|
228
213
|
});
|
|
229
214
|
}
|
|
230
215
|
public mutation<
|
|
231
216
|
TMutations extends AssertLegacyDef<TRouter>['mutations'],
|
|
232
217
|
TPath extends string & keyof TMutations,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
) {
|
|
240
|
-
// FIXME: Should be inferred from `args`
|
|
241
|
-
const context = (args[1] as TRPCRequestOptions | undefined)?.context;
|
|
242
|
-
const signal = (args[1] as TRPCRequestOptions | undefined)?.signal;
|
|
243
|
-
|
|
244
|
-
return this.requestAsPromise<
|
|
245
|
-
inferHandlerInput<AssertType<TMutations, ProcedureRecord>[TPath]>,
|
|
246
|
-
inferProcedureOutput<TMutations[TPath]>
|
|
247
|
-
>({
|
|
218
|
+
TInput extends inferProcedureInput<
|
|
219
|
+
AssertType<TMutations, ProcedureRecord>[TPath]
|
|
220
|
+
>,
|
|
221
|
+
>(path: TPath, input?: TInput, opts?: TRPCRequestOptions) {
|
|
222
|
+
type TOutput = inferProcedureOutput<TMutations[TPath]>;
|
|
223
|
+
return this.requestAsPromise<TInput, TOutput>({
|
|
248
224
|
type: 'mutation',
|
|
249
225
|
path,
|
|
250
|
-
input:
|
|
251
|
-
context,
|
|
252
|
-
signal,
|
|
226
|
+
input: input as TInput,
|
|
227
|
+
context: opts?.context,
|
|
228
|
+
signal: opts?.signal,
|
|
253
229
|
});
|
|
254
230
|
}
|
|
255
231
|
public subscription<
|
package/src/links/wsLink.ts
CHANGED
|
@@ -27,7 +27,7 @@ export interface WebSocketClientOptions {
|
|
|
27
27
|
WebSocket?: typeof WebSocket;
|
|
28
28
|
retryDelayMs?: typeof retryDelay;
|
|
29
29
|
onOpen?: () => void;
|
|
30
|
-
onClose?: () => void;
|
|
30
|
+
onClose?: (cause?: { code?: number }) => void;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export function createWSClient(opts: WebSocketClientOptions) {
|
|
@@ -198,9 +198,9 @@ export function createWSClient(opts: WebSocketClientOptions) {
|
|
|
198
198
|
}
|
|
199
199
|
});
|
|
200
200
|
|
|
201
|
-
conn.addEventListener('close', () => {
|
|
201
|
+
conn.addEventListener('close', ({ code }) => {
|
|
202
202
|
if (state === 'open') {
|
|
203
|
-
onClose?.();
|
|
203
|
+
onClose?.({ code });
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
if (activeConnection === conn) {
|