@trpc/client 10.6.0 → 10.7.0
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/index.js +12 -6
- package/dist/index.mjs +12 -6
- package/dist/internals/TRPCClient.d.ts +22 -4
- package/dist/internals/TRPCClient.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/createTRPCClient.ts +1 -1
- package/src/internals/TRPCClient.ts +48 -14
package/dist/index.js
CHANGED
|
@@ -85,14 +85,20 @@ class TRPCClient {
|
|
|
85
85
|
constructor(opts){
|
|
86
86
|
this.requestId = 0;
|
|
87
87
|
function getTransformer() {
|
|
88
|
-
if (!opts.transformer) return {
|
|
88
|
+
if (!opts.transformer || typeof opts.transformer === 'string') return {
|
|
89
89
|
serialize: (data)=>data,
|
|
90
90
|
deserialize: (data)=>data
|
|
91
91
|
};
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
92
|
+
// Type guard for `opts.transformer` because it can be `any`
|
|
93
|
+
function isTransformer(obj) {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
if (isTransformer(opts.transformer)) {
|
|
97
|
+
if ('input' in opts.transformer) return {
|
|
98
|
+
serialize: opts.transformer.input.serialize,
|
|
99
|
+
deserialize: opts.transformer.output.deserialize
|
|
100
|
+
};
|
|
101
|
+
}
|
|
96
102
|
return opts.transformer;
|
|
97
103
|
}
|
|
98
104
|
this.runtime = {
|
|
@@ -115,7 +121,7 @@ class TRPCClient {
|
|
|
115
121
|
];
|
|
116
122
|
};
|
|
117
123
|
const client = new TRPCClient({
|
|
118
|
-
|
|
124
|
+
...opts,
|
|
119
125
|
links: getLinks()
|
|
120
126
|
});
|
|
121
127
|
return client;
|
package/dist/index.mjs
CHANGED
|
@@ -84,14 +84,20 @@ class TRPCClient {
|
|
|
84
84
|
constructor(opts){
|
|
85
85
|
this.requestId = 0;
|
|
86
86
|
function getTransformer() {
|
|
87
|
-
if (!opts.transformer) return {
|
|
87
|
+
if (!opts.transformer || typeof opts.transformer === 'string') return {
|
|
88
88
|
serialize: (data)=>data,
|
|
89
89
|
deserialize: (data)=>data
|
|
90
90
|
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
91
|
+
// Type guard for `opts.transformer` because it can be `any`
|
|
92
|
+
function isTransformer(obj) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
if (isTransformer(opts.transformer)) {
|
|
96
|
+
if ('input' in opts.transformer) return {
|
|
97
|
+
serialize: opts.transformer.input.serialize,
|
|
98
|
+
deserialize: opts.transformer.output.deserialize
|
|
99
|
+
};
|
|
100
|
+
}
|
|
95
101
|
return opts.transformer;
|
|
96
102
|
}
|
|
97
103
|
this.runtime = {
|
|
@@ -114,7 +120,7 @@ class TRPCClient {
|
|
|
114
120
|
];
|
|
115
121
|
};
|
|
116
122
|
const client = new TRPCClient({
|
|
117
|
-
|
|
123
|
+
...opts,
|
|
118
124
|
links: getLinks()
|
|
119
125
|
});
|
|
120
126
|
return client;
|
|
@@ -1,15 +1,33 @@
|
|
|
1
|
-
import { AnyRouter, ClientDataTransformerOptions, inferProcedureInput, inferProcedureOutput, inferSubscriptionOutput } from '@trpc/server';
|
|
1
|
+
import { AnyRouter, ClientDataTransformerOptions, CombinedDataTransformer, DataTransformerOptions, DefaultDataTransformer, inferProcedureInput, inferProcedureOutput, inferSubscriptionOutput } from '@trpc/server';
|
|
2
2
|
import { Unsubscribable } from '@trpc/server/observable';
|
|
3
3
|
import { inferTransformedProcedureOutput } from '@trpc/server/shared';
|
|
4
4
|
import { TRPCClientError } from '../TRPCClientError';
|
|
5
5
|
import { OperationContext, TRPCClientRuntime, TRPCLink } from '../links/types';
|
|
6
|
-
|
|
6
|
+
declare type CreateTRPCClientBaseOptions<TRouter extends AnyRouter> = TRouter['_def']['_config']['transformer'] extends DefaultDataTransformer ? {
|
|
7
7
|
/**
|
|
8
8
|
* Data transformer
|
|
9
|
+
*
|
|
10
|
+
* You must use the same transformer on the backend and frontend
|
|
11
|
+
* @link https://trpc.io/docs/data-transformers
|
|
12
|
+
**/
|
|
13
|
+
transformer?: 'You must set a transformer on the backend router';
|
|
14
|
+
} : TRouter['_def']['_config']['transformer'] extends DataTransformerOptions ? {
|
|
15
|
+
/**
|
|
16
|
+
* Data transformer
|
|
17
|
+
*
|
|
18
|
+
* You must use the same transformer on the backend and frontend
|
|
19
|
+
* @link https://trpc.io/docs/data-transformers
|
|
20
|
+
**/
|
|
21
|
+
transformer: TRouter['_def']['_config']['transformer'] extends CombinedDataTransformer ? DataTransformerOptions : TRouter['_def']['_config']['transformer'];
|
|
22
|
+
} : {
|
|
23
|
+
/**
|
|
24
|
+
* Data transformer
|
|
25
|
+
*
|
|
26
|
+
* You must use the same transformer on the backend and frontend
|
|
9
27
|
* @link https://trpc.io/docs/data-transformers
|
|
10
28
|
**/
|
|
11
29
|
transformer?: ClientDataTransformerOptions;
|
|
12
|
-
}
|
|
30
|
+
};
|
|
13
31
|
export interface TRPCRequestOptions {
|
|
14
32
|
/**
|
|
15
33
|
* Pass additional context to links
|
|
@@ -25,7 +43,7 @@ export interface TRPCSubscriptionObserver<TValue, TError> {
|
|
|
25
43
|
onComplete: () => void;
|
|
26
44
|
}
|
|
27
45
|
/** @internal */
|
|
28
|
-
export declare type CreateTRPCClientOptions<TRouter extends AnyRouter> = CreateTRPCClientBaseOptions & {
|
|
46
|
+
export declare type CreateTRPCClientOptions<TRouter extends AnyRouter> = CreateTRPCClientBaseOptions<TRouter> & {
|
|
29
47
|
links: TRPCLink<TRouter>[];
|
|
30
48
|
};
|
|
31
49
|
export declare class TRPCClient<TRouter extends AnyRouter> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,4BAA4B,
|
|
1
|
+
{"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/client",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.7.0",
|
|
4
4
|
"description": "tRPC Client lib",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
"links"
|
|
67
67
|
],
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@trpc/server": "10.
|
|
69
|
+
"@trpc/server": "10.7.0"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@testing-library/dom": "^8.18.1",
|
|
73
|
-
"@trpc/server": "10.
|
|
73
|
+
"@trpc/server": "10.7.0",
|
|
74
74
|
"@types/node": "^18.7.20",
|
|
75
75
|
"rollup": "^2.79.1",
|
|
76
76
|
"tsx": "^3.9.0"
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"publishConfig": {
|
|
79
79
|
"access": "public"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "dd8e424c0f0d3a43b6c6cb0356c4ac1b8199c4d0"
|
|
82
82
|
}
|
package/src/createTRPCClient.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AnyRouter,
|
|
3
3
|
ClientDataTransformerOptions,
|
|
4
|
+
CombinedDataTransformer,
|
|
4
5
|
DataTransformer,
|
|
6
|
+
DataTransformerOptions,
|
|
7
|
+
DefaultDataTransformer,
|
|
5
8
|
inferProcedureInput,
|
|
6
9
|
inferProcedureOutput,
|
|
7
10
|
inferSubscriptionOutput,
|
|
@@ -22,13 +25,38 @@ import {
|
|
|
22
25
|
TRPCLink,
|
|
23
26
|
} from '../links/types';
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
type CreateTRPCClientBaseOptions<TRouter extends AnyRouter> =
|
|
29
|
+
TRouter['_def']['_config']['transformer'] extends DefaultDataTransformer
|
|
30
|
+
? {
|
|
31
|
+
/**
|
|
32
|
+
* Data transformer
|
|
33
|
+
*
|
|
34
|
+
* You must use the same transformer on the backend and frontend
|
|
35
|
+
* @link https://trpc.io/docs/data-transformers
|
|
36
|
+
**/
|
|
37
|
+
transformer?: 'You must set a transformer on the backend router';
|
|
38
|
+
}
|
|
39
|
+
: TRouter['_def']['_config']['transformer'] extends DataTransformerOptions
|
|
40
|
+
? {
|
|
41
|
+
/**
|
|
42
|
+
* Data transformer
|
|
43
|
+
*
|
|
44
|
+
* You must use the same transformer on the backend and frontend
|
|
45
|
+
* @link https://trpc.io/docs/data-transformers
|
|
46
|
+
**/
|
|
47
|
+
transformer: TRouter['_def']['_config']['transformer'] extends CombinedDataTransformer
|
|
48
|
+
? DataTransformerOptions
|
|
49
|
+
: TRouter['_def']['_config']['transformer'];
|
|
50
|
+
}
|
|
51
|
+
: {
|
|
52
|
+
/**
|
|
53
|
+
* Data transformer
|
|
54
|
+
*
|
|
55
|
+
* You must use the same transformer on the backend and frontend
|
|
56
|
+
* @link https://trpc.io/docs/data-transformers
|
|
57
|
+
**/
|
|
58
|
+
transformer?: ClientDataTransformerOptions;
|
|
59
|
+
};
|
|
32
60
|
|
|
33
61
|
type TRPCType = 'subscription' | 'query' | 'mutation';
|
|
34
62
|
export interface TRPCRequestOptions {
|
|
@@ -49,7 +77,7 @@ export interface TRPCSubscriptionObserver<TValue, TError> {
|
|
|
49
77
|
|
|
50
78
|
/** @internal */
|
|
51
79
|
export type CreateTRPCClientOptions<TRouter extends AnyRouter> =
|
|
52
|
-
| CreateTRPCClientBaseOptions & {
|
|
80
|
+
| CreateTRPCClientBaseOptions<TRouter> & {
|
|
53
81
|
links: TRPCLink<TRouter>[];
|
|
54
82
|
};
|
|
55
83
|
|
|
@@ -62,16 +90,22 @@ export class TRPCClient<TRouter extends AnyRouter> {
|
|
|
62
90
|
this.requestId = 0;
|
|
63
91
|
|
|
64
92
|
function getTransformer(): DataTransformer {
|
|
65
|
-
if (!opts.transformer)
|
|
93
|
+
if (!opts.transformer || typeof opts.transformer === 'string')
|
|
66
94
|
return {
|
|
67
95
|
serialize: (data) => data,
|
|
68
96
|
deserialize: (data) => data,
|
|
69
97
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
// Type guard for `opts.transformer` because it can be `any`
|
|
99
|
+
function isTransformer(obj: any): obj is ClientDataTransformerOptions {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
if (isTransformer(opts.transformer)) {
|
|
103
|
+
if ('input' in opts.transformer)
|
|
104
|
+
return {
|
|
105
|
+
serialize: opts.transformer.input.serialize,
|
|
106
|
+
deserialize: opts.transformer.output.deserialize,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
75
109
|
return opts.transformer;
|
|
76
110
|
}
|
|
77
111
|
|