@trpc/client 10.21.1-alpha.2 → 10.21.2

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 CHANGED
@@ -84,20 +84,34 @@ class TRPCUntypedClient {
84
84
  }
85
85
  constructor(opts){
86
86
  this.requestId = 0;
87
- function getTransformer() {
87
+ const combinedTransformer = (()=>{
88
88
  const transformer = opts.transformer;
89
- if (!transformer) return {
90
- serialize: (data)=>data,
91
- deserialize: (data)=>data
92
- };
93
- if ('input' in transformer) return {
94
- serialize: transformer.input.serialize,
95
- deserialize: transformer.output.deserialize
89
+ if (!transformer) {
90
+ return {
91
+ input: {
92
+ serialize: (data)=>data,
93
+ deserialize: (data)=>data
94
+ },
95
+ output: {
96
+ serialize: (data)=>data,
97
+ deserialize: (data)=>data
98
+ }
99
+ };
100
+ }
101
+ if ('input' in transformer) {
102
+ return opts.transformer;
103
+ }
104
+ return {
105
+ input: transformer,
106
+ output: transformer
96
107
  };
97
- return transformer;
98
- }
108
+ })();
99
109
  this.runtime = {
100
- transformer: getTransformer()
110
+ transformer: {
111
+ serialize: (data)=>combinedTransformer.input.serialize(data),
112
+ deserialize: (data)=>combinedTransformer.output.deserialize(data)
113
+ },
114
+ combinedTransformer
101
115
  };
102
116
  // Initialize the links
103
117
  this.links = opts.links.map((link)=>link(this.runtime));
package/dist/index.mjs CHANGED
@@ -82,20 +82,34 @@ class TRPCUntypedClient {
82
82
  }
83
83
  constructor(opts){
84
84
  this.requestId = 0;
85
- function getTransformer() {
85
+ const combinedTransformer = (()=>{
86
86
  const transformer = opts.transformer;
87
- if (!transformer) return {
88
- serialize: (data)=>data,
89
- deserialize: (data)=>data
90
- };
91
- if ('input' in transformer) return {
92
- serialize: transformer.input.serialize,
93
- deserialize: transformer.output.deserialize
87
+ if (!transformer) {
88
+ return {
89
+ input: {
90
+ serialize: (data)=>data,
91
+ deserialize: (data)=>data
92
+ },
93
+ output: {
94
+ serialize: (data)=>data,
95
+ deserialize: (data)=>data
96
+ }
97
+ };
98
+ }
99
+ if ('input' in transformer) {
100
+ return opts.transformer;
101
+ }
102
+ return {
103
+ input: transformer,
104
+ output: transformer
94
105
  };
95
- return transformer;
96
- }
106
+ })();
97
107
  this.runtime = {
98
- transformer: getTransformer()
108
+ transformer: {
109
+ serialize: (data)=>combinedTransformer.input.serialize(data),
110
+ deserialize: (data)=>combinedTransformer.output.deserialize(data)
111
+ },
112
+ combinedTransformer
99
113
  };
100
114
  // Initialize the links
101
115
  this.links = opts.links.map((link)=>link(this.runtime));
@@ -25,7 +25,7 @@ declare type CreateTRPCClientBaseOptions<TRouter extends AnyRouter> = TRouter['_
25
25
  * You must use the same transformer on the backend and frontend
26
26
  * @link https://trpc.io/docs/data-transformers
27
27
  **/
28
- transformer?: ClientDataTransformerOptions;
28
+ transformer?: /** @deprecated **/ ClientDataTransformerOptions | CombinedDataTransformer;
29
29
  };
30
30
  export interface TRPCRequestOptions {
31
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TRPCUntypedClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCUntypedClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EAEvB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EAIf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAExB,aAAK,2BAA2B,CAAC,OAAO,SAAS,SAAS,IACxD,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GACpE;IACE;;;;;QAKI;IACJ,WAAW,CAAC,EAAE,kDAAkD,CAAC;CAClE,GACD,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GACxE;IACE;;;;;QAKI;IACJ,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,uBAAuB,GAClF,sBAAsB,GACtB,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;CAC/C,GACD;IACE;;;;;QAKI;IACJ,WAAW,CAAC,EAAE,4BAA4B,CAAC;CAC5C,CAAC;AAGR,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB,CAAC,MAAM,EAAE,MAAM;IACtD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,gBAAgB;AAChB,oBAAY,uBAAuB,CAAC,OAAO,SAAS,SAAS,IACzD,2BAA2B,CAAC,OAAO,CAAC,GAAG;IACrC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5B,CAAC;AAEN,gBAAgB;AAChB,oBAAY,uBAAuB,GAC/B,OAAO,GACP,SAAS,GACT,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,OAAO,GACP,UAAU,GACV,cAAc,CAAC;AAEnB,qBAAa,iBAAiB,CAAC,OAAO,SAAS,SAAS;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC;IA4BlD,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,gBAAgB;IAyBjB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB;IAS9D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB;IASjE,YAAY,CACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,GACvE,cAAc;CAyBlB"}
1
+ {"version":3,"file":"TRPCUntypedClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCUntypedClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EAIf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EACjB,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAExB,aAAK,2BAA2B,CAAC,OAAO,SAAS,SAAS,IACxD,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GACpE;IACE;;;;;QAKI;IACJ,WAAW,CAAC,EAAE,kDAAkD,CAAC;CAClE,GACD,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,sBAAsB,GACxE;IACE;;;;;QAKI;IACJ,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,SAAS,uBAAuB,GAClF,sBAAsB,GACtB,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;CAC/C,GACD;IACE;;;;;QAKI;IACJ,WAAW,CAAC,EACR,mBAAmB,CAAC,4BAA4B,GAChD,uBAAuB,CAAC;CAC7B,CAAC;AAGR,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB,CAAC,MAAM,EAAE,MAAM;IACtD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,gBAAgB;AAChB,oBAAY,uBAAuB,CAAC,OAAO,SAAS,SAAS,IACzD,2BAA2B,CAAC,OAAO,CAAC,GAAG;IACrC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5B,CAAC;AAEN,gBAAgB;AAChB,oBAAY,uBAAuB,GAC/B,OAAO,GACP,SAAS,GACT,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,OAAO,GACP,UAAU,GACV,cAAc,CAAC;AAEnB,qBAAa,iBAAiB,CAAC,OAAO,SAAS,SAAS;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC;IAyClD,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,gBAAgB;IAyBjB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB;IAS9D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,kBAAkB;IASjE,YAAY,CACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,kBAAkB,GACtB,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,GACvE,cAAc;CAyBlB"}
@@ -1,4 +1,4 @@
1
- import { AnyRouter, DataTransformer } from '@trpc/server';
1
+ import { AnyRouter, CombinedDataTransformer, DataTransformer } from '@trpc/server';
2
2
  import { Observable, Observer } from '@trpc/server/observable';
3
3
  import { TRPCResultMessage, TRPCSuccessResponse } from '@trpc/server/rpc';
4
4
  import { TRPCClientError } from '../TRPCClientError';
@@ -39,6 +39,7 @@ export declare type HTTPHeaders = Record<string, string | string[] | undefined>;
39
39
  export declare type TRPCFetch = (url: string, options?: RequestInit) => Promise<ResponseEsque>;
40
40
  export interface TRPCClientRuntime {
41
41
  transformer: DataTransformer;
42
+ combinedTransformer: CombinedDataTransformer;
42
43
  }
43
44
  /**
44
45
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/links/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,oBAAY,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;GAEG;AACH,oBAAY,gBAAgB,CAAC,MAAM,IAAI;IACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvD;;GAEG;AACH,oBAAY,SAAS,CAAC,MAAM,GAAG,OAAO,IAAI;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,oBAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAExE;;;GAGG;AACH,oBAAY,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC9C,MAAM,EACF,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,oBAAY,yBAAyB,CACnC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE3E;;GAEG;AACH,oBAAY,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzE;;GAEG;AACH,oBAAY,aAAa,CACvB,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,IACf,CAAC,IAAI,EAAE;IACT,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC9E,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAElD;;GAEG;AACH,oBAAY,QAAQ,CAAC,OAAO,SAAS,SAAS,IAAI,CAChD,IAAI,EAAE,iBAAiB,KACpB,aAAa,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/links/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,oBAAY,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;GAEG;AACH,oBAAY,gBAAgB,CAAC,MAAM,IAAI;IACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvD;;GAEG;AACH,oBAAY,SAAS,CAAC,MAAM,GAAG,OAAO,IAAI;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,oBAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAExE;;;GAGG;AACH,oBAAY,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,eAAe,CAAC;IAE7B,mBAAmB,EAAE,uBAAuB,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC9C,MAAM,EACF,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,oBAAY,yBAAyB,CACnC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE3E;;GAEG;AACH,oBAAY,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzE;;GAEG;AACH,oBAAY,aAAa,CACvB,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,IACf,CAAC,IAAI,EAAE;IACT,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC9E,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAElD;;GAEG;AACH,oBAAY,QAAQ,CAAC,OAAO,SAAS,SAAS,IAAI,CAChD,IAAI,EAAE,iBAAiB,KACpB,aAAa,CAAC,OAAO,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/client",
3
- "version": "10.21.1-alpha.2",
3
+ "version": "10.21.2",
4
4
  "description": "tRPC Client lib",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -69,11 +69,11 @@
69
69
  "links"
70
70
  ],
71
71
  "peerDependencies": {
72
- "@trpc/server": "10.21.1-alpha.2"
72
+ "@trpc/server": "10.21.2"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@testing-library/dom": "^9.0.0",
76
- "@trpc/server": "10.21.1-alpha.2",
76
+ "@trpc/server": "10.21.2",
77
77
  "@types/isomorphic-fetch": "^0.0.36",
78
78
  "@types/node": "^18.7.20",
79
79
  "eslint": "^8.30.0",
@@ -88,5 +88,5 @@
88
88
  "publishConfig": {
89
89
  "access": "public"
90
90
  },
91
- "gitHead": "951f0b5f6b46ae27c626bc04065b2dc2afde11c7"
91
+ "gitHead": "53b5f072142c9ece7bed32fc4b500a601fbc0738"
92
92
  }
@@ -2,7 +2,6 @@ import {
2
2
  AnyRouter,
3
3
  ClientDataTransformerOptions,
4
4
  CombinedDataTransformer,
5
- DataTransformer,
6
5
  DataTransformerOptions,
7
6
  DefaultDataTransformer,
8
7
  } from '@trpc/server';
@@ -51,7 +50,9 @@ type CreateTRPCClientBaseOptions<TRouter extends AnyRouter> =
51
50
  * You must use the same transformer on the backend and frontend
52
51
  * @link https://trpc.io/docs/data-transformers
53
52
  **/
54
- transformer?: ClientDataTransformerOptions;
53
+ transformer?:
54
+ | /** @deprecated **/ ClientDataTransformerOptions
55
+ | CombinedDataTransformer;
55
56
  };
56
57
 
57
58
  type TRPCType = 'subscription' | 'query' | 'mutation';
@@ -96,27 +97,40 @@ export class TRPCUntypedClient<TRouter extends AnyRouter> {
96
97
  constructor(opts: CreateTRPCClientOptions<TRouter>) {
97
98
  this.requestId = 0;
98
99
 
99
- function getTransformer(): DataTransformer {
100
+ const combinedTransformer: CombinedDataTransformer = (() => {
100
101
  const transformer = opts.transformer as
101
- | ClientDataTransformerOptions
102
+ | DataTransformerOptions
102
103
  | undefined;
103
- if (!transformer)
104
- return {
105
- serialize: (data) => data,
106
- deserialize: (data) => data,
107
- };
108
104
 
109
- if ('input' in transformer)
105
+ if (!transformer) {
110
106
  return {
111
- serialize: transformer.input.serialize,
112
- deserialize: transformer.output.deserialize,
107
+ input: {
108
+ serialize: (data) => data,
109
+ deserialize: (data) => data,
110
+ },
111
+ output: {
112
+ serialize: (data) => data,
113
+ deserialize: (data) => data,
114
+ },
113
115
  };
114
- return transformer;
115
- }
116
+ }
117
+ if ('input' in transformer) {
118
+ return opts.transformer as CombinedDataTransformer;
119
+ }
120
+ return {
121
+ input: transformer,
122
+ output: transformer,
123
+ };
124
+ })();
116
125
 
117
126
  this.runtime = {
118
- transformer: getTransformer(),
127
+ transformer: {
128
+ serialize: (data) => combinedTransformer.input.serialize(data),
129
+ deserialize: (data) => combinedTransformer.output.deserialize(data),
130
+ },
131
+ combinedTransformer,
119
132
  };
133
+
120
134
  // Initialize the links
121
135
  this.links = opts.links.map((link) => link(this.runtime));
122
136
  }
@@ -1,4 +1,8 @@
1
- import { AnyRouter, DataTransformer } from '@trpc/server';
1
+ import {
2
+ AnyRouter,
3
+ CombinedDataTransformer,
4
+ DataTransformer,
5
+ } from '@trpc/server';
2
6
  import { Observable, Observer } from '@trpc/server/observable';
3
7
  import { TRPCResultMessage, TRPCSuccessResponse } from '@trpc/server/rpc';
4
8
  import { TRPCClientError } from '../TRPCClientError';
@@ -48,6 +52,8 @@ export type TRPCFetch = (
48
52
 
49
53
  export interface TRPCClientRuntime {
50
54
  transformer: DataTransformer;
55
+ // FIXME: we should be able to remove this - added as `withTRPC()` needs it, but we can have it as an extra option on SSR instead
56
+ combinedTransformer: CombinedDataTransformer;
51
57
  }
52
58
 
53
59
  /**