@trpc/server 10.0.0-proxy-beta.12 → 10.0.0-proxy-beta.14

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.
Files changed (81) hide show
  1. package/dist/{TRPCError-281ac25a.mjs → TRPCError-e99e7cbe.mjs} +1 -1
  2. package/dist/adapters/aws-lambda/index.js +2 -3
  3. package/dist/adapters/aws-lambda/index.mjs +3 -4
  4. package/dist/adapters/express.js +3 -3
  5. package/dist/adapters/express.mjs +4 -4
  6. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  7. package/dist/adapters/fastify/index.js +2 -3
  8. package/dist/adapters/fastify/index.mjs +3 -4
  9. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  10. package/dist/adapters/fetch/index.js +2 -3
  11. package/dist/adapters/fetch/index.mjs +3 -4
  12. package/dist/adapters/next.js +3 -3
  13. package/dist/adapters/next.mjs +4 -4
  14. package/dist/adapters/node-http/index.js +3 -3
  15. package/dist/adapters/node-http/index.mjs +4 -4
  16. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  17. package/dist/adapters/standalone.js +3 -3
  18. package/dist/adapters/standalone.mjs +4 -4
  19. package/dist/adapters/ws.d.ts.map +1 -1
  20. package/dist/adapters/ws.js +10 -3
  21. package/dist/adapters/ws.mjs +11 -4
  22. package/dist/core/index.d.ts +1 -1
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/initTRPC.d.ts +22 -5
  25. package/dist/core/initTRPC.d.ts.map +1 -1
  26. package/dist/core/internals/config.d.ts +13 -0
  27. package/dist/core/internals/config.d.ts.map +1 -1
  28. package/dist/core/internals/procedureBuilder.d.ts +24 -24
  29. package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
  30. package/dist/core/middleware.d.ts +1 -1
  31. package/dist/core/middleware.d.ts.map +1 -1
  32. package/dist/core/procedure.d.ts +7 -15
  33. package/dist/core/procedure.d.ts.map +1 -1
  34. package/dist/core/router.d.ts +8 -3
  35. package/dist/core/router.d.ts.map +1 -1
  36. package/dist/deprecated/internals/procedure.d.ts.map +1 -1
  37. package/dist/deprecated/interop.d.ts +2 -2
  38. package/dist/deprecated/interop.d.ts.map +1 -1
  39. package/dist/deprecated/router.d.ts.map +1 -1
  40. package/dist/http/index.d.ts.map +1 -1
  41. package/dist/index.d.ts +0 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +739 -25
  44. package/dist/index.mjs +724 -9
  45. package/dist/internals.d.ts +1 -2
  46. package/dist/internals.d.ts.map +1 -1
  47. package/dist/{nodeHTTPRequestHandler-f627eff7.mjs → nodeHTTPRequestHandler-205f7545.mjs} +2 -3
  48. package/dist/{nodeHTTPRequestHandler-831afd20.js → nodeHTTPRequestHandler-efc38711.js} +1 -2
  49. package/dist/resolveHTTPResponse-4ceb1785.mjs +205 -0
  50. package/dist/resolveHTTPResponse-bf4c6ceb.js +207 -0
  51. package/dist/subscription.mjs +1 -1
  52. package/dist/{resolveHTTPResponse-190892ac.js → transformTRPCResponse-05aa84c1.js} +22 -202
  53. package/dist/{resolveHTTPResponse-75ea5653.mjs → transformTRPCResponse-959de787.mjs} +21 -202
  54. package/dist/types.d.ts +9 -2
  55. package/dist/types.d.ts.map +1 -1
  56. package/package.json +6 -6
  57. package/src/adapters/fastify/fastifyRequestHandler.ts +0 -3
  58. package/src/adapters/fetch/fetchRequestHandler.ts +0 -3
  59. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +0 -3
  60. package/src/adapters/ws.ts +13 -3
  61. package/src/core/index.ts +1 -0
  62. package/src/core/initTRPC.ts +12 -0
  63. package/src/core/internals/config.ts +19 -0
  64. package/src/core/internals/procedureBuilder.ts +38 -47
  65. package/src/core/middleware.ts +1 -1
  66. package/src/core/procedure.ts +7 -18
  67. package/src/core/router.ts +20 -13
  68. package/src/deprecated/internals/procedure.ts +0 -3
  69. package/src/deprecated/interop.ts +2 -12
  70. package/src/deprecated/router.ts +0 -3
  71. package/src/http/index.ts +0 -4
  72. package/src/index.ts +0 -1
  73. package/src/internals.ts +4 -6
  74. package/src/types.ts +28 -7
  75. package/dist/assertNotBrowser.d.ts +0 -2
  76. package/dist/assertNotBrowser.d.ts.map +0 -1
  77. package/dist/router-133cf4a4.mjs +0 -718
  78. package/dist/router-3bad08e5.js +0 -724
  79. package/dist/transformTRPCResponse-11ac69cc.js +0 -27
  80. package/dist/transformTRPCResponse-c8138d5f.mjs +0 -25
  81. package/src/assertNotBrowser.ts +0 -12
@@ -12,6 +12,16 @@ export interface InitGenerics {
12
12
  ctx: Record<string, unknown>;
13
13
  meta: Record<string, unknown>;
14
14
  }
15
+
16
+ /**
17
+ * The default check to see if we're in a server
18
+ */
19
+ export const isServerDefault: boolean =
20
+ typeof window === 'undefined' ||
21
+ 'Deno' in window ||
22
+ process.env.NODE_ENV === 'test' ||
23
+ !!process.env.JEST_WORKER_ID;
24
+
15
25
  /**
16
26
  * The initial params that are used and actually represents real values underneath
17
27
  * @internal
@@ -19,6 +29,15 @@ export interface InitGenerics {
19
29
  export interface InitOptions<TType extends InitGenerics> {
20
30
  transformer: DataTransformerOptions;
21
31
  errorFormatter: ErrorFormatter<TType['ctx'], any>;
32
+ /**
33
+ * Allow `@trpc/server` to run in non-server environments
34
+ * @default false
35
+ */
36
+ allowOutsideOfServer: boolean;
37
+ /**
38
+ * Is this a server environment?
39
+ */
40
+ isServer: boolean;
22
41
  }
23
42
 
24
43
  /**
@@ -13,10 +13,8 @@ import {
13
13
  AnyProcedure,
14
14
  AnyQueryProcedure,
15
15
  AnySubscriptionProcedure,
16
- MutationProcedure,
16
+ Procedure,
17
17
  ProcedureParams,
18
- QueryProcedure,
19
- SubscriptionProcedure,
20
18
  } from '../procedure';
21
19
  import { ProcedureType } from '../types';
22
20
  import { RootConfig } from './config';
@@ -44,12 +42,45 @@ type CreateProcedureReturnInput<
44
42
  _output_out: FallbackValue<TNext['_output_out'], TPrev['_output_out']>;
45
43
  }>;
46
44
 
45
+ /**
46
+ * @internal
47
+ */
48
+ export interface BuildProcedure<
49
+ TType extends ProcedureType,
50
+ TParams extends ProcedureParams,
51
+ TOutput,
52
+ > extends Procedure<
53
+ TType,
54
+ UnsetMarker extends TParams['_output_out']
55
+ ? OverwriteKnown<
56
+ TParams,
57
+ {
58
+ _output_in: TOutput;
59
+ _output_out: TOutput;
60
+ }
61
+ >
62
+ : TParams
63
+ > {}
64
+
47
65
  type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType
48
66
  ? TWith
49
67
  : FlatOverwrite<TType, TWith>;
50
68
 
51
69
  type ErrorMessage<TMessage extends string> = TMessage;
52
70
 
71
+ export type ProcedureBuilderDef<TParams extends ProcedureParams> = {
72
+ inputs: Parser[];
73
+ output?: Parser;
74
+ meta?: TParams['_meta'];
75
+ resolver?: ProcedureBuilderResolver;
76
+ middlewares: ProcedureBuilderMiddleware[];
77
+ mutation?: boolean;
78
+ query?: boolean;
79
+ subscription?: boolean;
80
+ };
81
+
82
+ export type AnyProcedureBuilderDef = ProcedureBuilderDef<any>;
83
+
53
84
  export interface ProcedureBuilder<TParams extends ProcedureParams> {
54
85
  /**
55
86
  * Add an input parser to the procedure.
@@ -119,17 +150,7 @@ export interface ProcedureBuilder<TParams extends ProcedureParams> {
119
150
  resolver: (
120
151
  opts: ResolveOptions<TParams>,
121
152
  ) => MaybePromise<FallbackValue<TParams['_output_in'], TOutput>>,
122
- ): UnsetMarker extends TParams['_output_out']
123
- ? QueryProcedure<
124
- OverwriteKnown<
125
- TParams,
126
- {
127
- _output_in: TOutput;
128
- _output_out: TOutput;
129
- }
130
- >
131
- >
132
- : QueryProcedure<TParams>;
153
+ ): BuildProcedure<'query', TParams, TOutput>;
133
154
 
134
155
  /**
135
156
  * Mutation procedure
@@ -138,17 +159,7 @@ export interface ProcedureBuilder<TParams extends ProcedureParams> {
138
159
  resolver: (
139
160
  opts: ResolveOptions<TParams>,
140
161
  ) => MaybePromise<FallbackValue<TParams['_output_in'], TOutput>>,
141
- ): UnsetMarker extends TParams['_output_out']
142
- ? MutationProcedure<
143
- OverwriteKnown<
144
- TParams,
145
- {
146
- _output_in: TOutput;
147
- _output_out: TOutput;
148
- }
149
- >
150
- >
151
- : MutationProcedure<TParams>;
162
+ ): BuildProcedure<'mutation', TParams, TOutput>;
152
163
 
153
164
  /**
154
165
  * Mutation procedure
@@ -157,34 +168,14 @@ export interface ProcedureBuilder<TParams extends ProcedureParams> {
157
168
  resolver: (
158
169
  opts: ResolveOptions<TParams>,
159
170
  ) => MaybePromise<FallbackValue<TParams['_output_in'], TOutput>>,
160
- ): UnsetMarker extends TParams['_output_out']
161
- ? SubscriptionProcedure<
162
- OverwriteKnown<
163
- TParams,
164
- {
165
- _output_in: TOutput;
166
- _output_out: TOutput;
167
- }
168
- >
169
- >
170
- : SubscriptionProcedure<TParams>;
171
+ ): BuildProcedure<'subscription', TParams, TOutput>;
171
172
  /**
172
173
  * @internal
173
174
  */
174
- _def: {
175
- inputs: Parser[];
176
- output?: Parser;
177
- meta?: TParams['_meta'];
178
- resolver?: ProcedureBuilderResolver;
179
- middlewares: ProcedureBuilderMiddleware[];
180
- mutation?: boolean;
181
- query?: boolean;
182
- subscription?: boolean;
183
- };
175
+ _def: ProcedureBuilderDef<TParams>;
184
176
  }
185
177
 
186
178
  type AnyProcedureBuilder = ProcedureBuilder<any>;
187
- export type AnyProcedureBuilderDef = AnyProcedureBuilder['_def'];
188
179
 
189
180
  export type ProcedureBuilderMiddleware = MiddlewareFunction<any, any>;
190
181
 
@@ -57,7 +57,7 @@ export type MiddlewareFunction<
57
57
  path: string;
58
58
  input: TParams['_input_out'];
59
59
  rawInput: unknown;
60
- meta: TParams['_meta'];
60
+ meta: TParams['_meta'] | undefined;
61
61
  next: {
62
62
  (): Promise<MiddlewareResult<TParams>>;
63
63
  <TContext>(opts: { ctx: TContext }): Promise<
@@ -2,7 +2,7 @@ import { DefaultErrorShape } from '../error/formatter';
2
2
  import { CombinedDataTransformer } from '../transformer';
3
3
  import { RootConfig } from './internals/config';
4
4
  import {
5
- ProcedureBuilder,
5
+ ProcedureBuilderDef,
6
6
  ProcedureCallOptions,
7
7
  } from './internals/procedureBuilder';
8
8
  import { UnsetMarker } from './internals/utils';
@@ -86,12 +86,12 @@ export type ProcedureArgs<TParams extends ProcedureParams> =
86
86
  *
87
87
  * @internal
88
88
  */
89
- export interface ProcedureBase<
89
+ export interface Procedure<
90
90
  TType extends ProcedureType,
91
91
  TParams extends ProcedureParams,
92
92
  > {
93
93
  _type: TType;
94
- _def: TParams & ProcedureBuilder<TParams>['_def'];
94
+ _def: TParams & ProcedureBuilderDef<TParams>;
95
95
  /**
96
96
  * @deprecated use `._def.meta` instead
97
97
  */
@@ -103,18 +103,7 @@ export interface ProcedureBase<
103
103
  (opts: ProcedureCallOptions): Promise<unknown>;
104
104
  }
105
105
 
106
- export interface QueryProcedure<TParams extends ProcedureParams>
107
- extends ProcedureBase<'query', TParams> {}
108
- export type AnyQueryProcedure = QueryProcedure<any>;
109
-
110
- export interface MutationProcedure<TParams extends ProcedureParams>
111
- extends ProcedureBase<'mutation', TParams> {}
112
- export type AnyMutationProcedure = MutationProcedure<any>;
113
-
114
- export interface SubscriptionProcedure<TParams extends ProcedureParams>
115
- extends ProcedureBase<'subscription', TParams> {}
116
- export type AnySubscriptionProcedure = SubscriptionProcedure<any>;
117
-
118
- export interface Procedure<TParams extends ProcedureParams>
119
- extends ProcedureBase<ProcedureType, TParams> {}
120
- export type AnyProcedure = Procedure<any>;
106
+ export type AnyQueryProcedure = Procedure<'query', any>;
107
+ export type AnyMutationProcedure = Procedure<'mutation', any>;
108
+ export type AnySubscriptionProcedure = Procedure<'subscription', any>;
109
+ export type AnyProcedure = Procedure<ProcedureType, any>;
@@ -29,7 +29,9 @@ import {
29
29
  /** @internal **/
30
30
  export type ProcedureRecord = Record<string, AnyProcedure>;
31
31
 
32
- export type ProcedureRouterRecord = Record<string, AnyProcedure | AnyRouter>;
32
+ export interface ProcedureRouterRecord {
33
+ [key: string]: AnyProcedure | AnyRouter;
34
+ }
33
35
 
34
36
  export interface ProcedureStructure {
35
37
  queries: Record<string, AnyQueryProcedure>;
@@ -188,7 +190,22 @@ const reservedWords = [
188
190
  ];
189
191
 
190
192
  /**
191
- *
193
+ * @internal
194
+ */
195
+ export type CreateRouterInner<
196
+ TConfig extends RootConfig,
197
+ TProcRouterRecord extends ProcedureRouterRecord,
198
+ > = Router<
199
+ RouterDef<
200
+ TConfig['ctx'],
201
+ TConfig['errorShape'],
202
+ TConfig['meta'],
203
+ TProcRouterRecord
204
+ >
205
+ > &
206
+ TProcRouterRecord;
207
+
208
+ /**
192
209
  * @internal
193
210
  */
194
211
  export function createRouterFactory<TConfig extends RootConfig>(
@@ -196,17 +213,7 @@ export function createRouterFactory<TConfig extends RootConfig>(
196
213
  ) {
197
214
  return function createRouterInner<
198
215
  TProcRouterRecord extends ProcedureRouterRecord,
199
- >(
200
- opts: TProcRouterRecord,
201
- ): Router<
202
- RouterDef<
203
- TConfig['ctx'],
204
- TConfig['errorShape'],
205
- TConfig['meta'],
206
- TProcRouterRecord
207
- >
208
- > &
209
- TProcRouterRecord {
216
+ >(opts: TProcRouterRecord): CreateRouterInner<TConfig, TProcRouterRecord> {
210
217
  const reservedWordsUsed = new Set(
211
218
  Object.keys(opts).filter((v) => reservedWords.includes(v)),
212
219
  );
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { assertNotBrowser } from '../../assertNotBrowser';
3
2
  import { TRPCError } from '../../error/TRPCError';
4
3
  import {
5
4
  getCauseFromUnknown,
@@ -13,8 +12,6 @@ import {
13
12
  middlewareMarker,
14
13
  } from './middlewares';
15
14
 
16
- assertNotBrowser();
17
-
18
15
  export type ProcedureParserZodEsque<TInput, TOutput> = {
19
16
  _input: TInput;
20
17
  _output: TOutput;
@@ -7,11 +7,7 @@ import {
7
7
  createInputMiddleware,
8
8
  createOutputMiddleware,
9
9
  } from '../core/middleware';
10
- import {
11
- MutationProcedure,
12
- QueryProcedure,
13
- SubscriptionProcedure,
14
- } from '../core/procedure';
10
+ import { Procedure } from '../core/procedure';
15
11
  import {
16
12
  ProcedureRecord as NewProcedureRecord,
17
13
  Router as NewRouter,
@@ -57,13 +53,7 @@ type MigrateProcedure<
57
53
  TConfig extends RootConfig,
58
54
  TProcedure extends AnyOldProcedure,
59
55
  TType extends ProcedureType,
60
- > = TType extends 'query'
61
- ? QueryProcedure<convertProcedureParams<TConfig, TProcedure>>
62
- : TType extends 'mutation'
63
- ? MutationProcedure<convertProcedureParams<TConfig, TProcedure>>
64
- : TType extends 'subscription'
65
- ? SubscriptionProcedure<convertProcedureParams<TConfig, TProcedure>>
66
- : never;
56
+ > = Procedure<TType, convertProcedureParams<TConfig, TProcedure>>;
67
57
 
68
58
  export type MigrateProcedureRecord<
69
59
  TConfig extends RootConfig,
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { assertNotBrowser } from '../assertNotBrowser';
3
2
  import { TRPCError } from '../error/TRPCError';
4
3
  import { defaultFormatter } from '../error/formatter';
5
4
  import { getHTTPStatusCodeFromError } from '../http/internals/getHTTPStatusCode';
@@ -29,8 +28,6 @@ import {
29
28
  } from './internals/procedure';
30
29
  import { MigrateRouter, migrateRouter } from './interop';
31
30
 
32
- assertNotBrowser();
33
-
34
31
  export type { Procedure } from './internals/procedure';
35
32
 
36
33
  /**
package/src/http/index.ts CHANGED
@@ -1,6 +1,2 @@
1
- import { assertNotBrowser } from '../assertNotBrowser';
2
-
3
1
  export * from './resolveHTTPResponse';
4
2
  export * from './types';
5
-
6
- assertNotBrowser();
package/src/index.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './assertNotBrowser';
2
1
  export * from './http';
3
2
  export * from './transformer';
4
3
  export * from './error/TRPCError';
package/src/internals.ts CHANGED
@@ -3,12 +3,10 @@
3
3
  */
4
4
  export type { DefaultErrorShape } from './error/formatter';
5
5
  export type { mergeRoutersGeneric } from './core/internals/__generated__/mergeRoutersGeneric';
6
- export type { ProcedureBuilder } from './core/internals/procedureBuilder';
6
+ export type {
7
+ ProcedureBuilder,
8
+ BuildProcedure,
9
+ } from './core/internals/procedureBuilder';
7
10
  export type { Overwrite, unsetMarker } from './core/internals/utils';
8
11
  export type { MiddlewareFunction } from './core/middleware';
9
12
  export type { Router, RouterDef } from './core/router';
10
- export type {
11
- MutationProcedure,
12
- QueryProcedure,
13
- SubscriptionProcedure,
14
- } from './core/procedure';
package/src/types.ts CHANGED
@@ -5,16 +5,37 @@
5
5
  */
6
6
  export type identity<TType> = TType;
7
7
 
8
+ type InferOptional<TType, TKeys extends keyof TType> = Partial<
9
+ Pick<TType, TKeys>
10
+ > &
11
+ Omit<TType, TKeys>;
12
+
13
+ type OmitNever<TType> = Pick<
14
+ TType,
15
+ {
16
+ [K in keyof TType]: TType[K] extends never ? never : K;
17
+ }[keyof TType]
18
+ >;
19
+
20
+ type UndefinedKeys<TType> = keyof OmitNever<{
21
+ [K in keyof TType]: TType[K] extends undefined ? TType : never;
22
+ }>;
23
+
8
24
  /**
9
25
  * @internal
10
26
  */
11
- export type FlatOverwrite<TType, TWith> = identity<{
12
- [TKey in keyof TWith | keyof TType]: TKey extends keyof TWith
13
- ? TWith[TKey]
14
- : TKey extends keyof TType
15
- ? TType[TKey]
16
- : never;
17
- }>;
27
+ export type FlatOverwrite<TType, TWith> = Simplify<
28
+ InferOptional<
29
+ {
30
+ [TKey in keyof TWith | keyof TType]: TKey extends keyof TWith
31
+ ? TWith[TKey]
32
+ : TKey extends keyof TType
33
+ ? TType[TKey]
34
+ : never;
35
+ },
36
+ UndefinedKeys<TType> | UndefinedKeys<TWith>
37
+ >
38
+ >;
18
39
 
19
40
  /**
20
41
  * @public
@@ -1,2 +0,0 @@
1
- export declare function assertNotBrowser(): void;
2
- //# sourceMappingURL=assertNotBrowser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assertNotBrowser.d.ts","sourceRoot":"","sources":["../src/assertNotBrowser.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,SAS/B"}