@trpc/server 10.0.0-alpha.25 → 10.0.0-alpha.28

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 (210) hide show
  1. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -1
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +100 -20
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +100 -20
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +99 -19
  5. package/adapters/aws-lambda/index.d.ts +1 -0
  6. package/adapters/aws-lambda/index.js +1 -0
  7. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  8. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  9. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  10. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  11. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  12. package/dist/{TRPCError-ddec3395.js → TRPCError-9050a68d.js} +0 -0
  13. package/dist/{TRPCError-7971540a.mjs → TRPCError-b7fa0c31.mjs} +0 -0
  14. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  15. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  16. package/dist/adapters/aws-lambda/utils.d.ts +34 -0
  17. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  18. package/dist/adapters/express.d.ts +1 -1
  19. package/dist/adapters/express.d.ts.map +1 -1
  20. package/dist/adapters/express.js +5 -5
  21. package/dist/adapters/express.mjs +5 -5
  22. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
  23. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  24. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
  25. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  26. package/dist/adapters/fastify/index.js +4 -4
  27. package/dist/adapters/fastify/index.mjs +4 -4
  28. package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
  29. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  30. package/dist/adapters/fetch/index.js +4 -4
  31. package/dist/adapters/fetch/index.mjs +4 -4
  32. package/dist/adapters/fetch/types.d.ts +1 -1
  33. package/dist/adapters/fetch/types.d.ts.map +1 -1
  34. package/dist/adapters/lambda/index.d.ts +12 -0
  35. package/dist/adapters/lambda/index.d.ts.map +1 -0
  36. package/dist/adapters/next.d.ts +1 -1
  37. package/dist/adapters/next.d.ts.map +1 -1
  38. package/dist/adapters/next.js +5 -5
  39. package/dist/adapters/next.mjs +5 -5
  40. package/dist/adapters/node-http/index.js +5 -5
  41. package/dist/adapters/node-http/index.mjs +5 -5
  42. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  43. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  44. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
  45. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  46. package/dist/adapters/node-http/types.d.ts +3 -2
  47. package/dist/adapters/node-http/types.d.ts.map +1 -1
  48. package/dist/adapters/standalone.d.ts +2 -2
  49. package/dist/adapters/standalone.d.ts.map +1 -1
  50. package/dist/adapters/standalone.js +5 -5
  51. package/dist/adapters/standalone.mjs +5 -5
  52. package/dist/adapters/ws.d.ts +5 -3
  53. package/dist/adapters/ws.d.ts.map +1 -1
  54. package/dist/adapters/ws.js +4 -9
  55. package/dist/adapters/ws.mjs +4 -9
  56. package/dist/core/index.d.ts +5 -0
  57. package/dist/core/index.d.ts.map +1 -0
  58. package/dist/core/initTRPC.d.ts +82 -0
  59. package/dist/core/initTRPC.d.ts.map +1 -0
  60. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +262 -0
  61. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  62. package/dist/core/internals/config.d.ts +38 -0
  63. package/dist/core/internals/config.d.ts.map +1 -0
  64. package/dist/core/internals/getParseFn.d.ts +9 -0
  65. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  66. package/dist/core/internals/internalProcedure.d.ts +61 -0
  67. package/dist/core/internals/internalProcedure.d.ts.map +1 -0
  68. package/dist/core/internals/mergeRouters.d.ts +3 -0
  69. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  70. package/dist/core/internals/mergeRoutersGeneric.d.ts +21 -0
  71. package/dist/core/internals/mergeRoutersGeneric.d.ts.map +1 -0
  72. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  73. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  74. package/dist/core/internals/omitPrototype.d.ts +6 -0
  75. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  76. package/dist/core/internals/procedureBuilder.d.ts +72 -0
  77. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  78. package/dist/core/internals/utils.d.ts +44 -0
  79. package/dist/core/internals/utils.d.ts.map +1 -0
  80. package/dist/core/middleware.d.ts +78 -0
  81. package/dist/core/middleware.d.ts.map +1 -0
  82. package/dist/core/parser.d.ts +25 -0
  83. package/dist/core/parser.d.ts.map +1 -0
  84. package/dist/core/procedure.d.ts +57 -0
  85. package/dist/core/procedure.d.ts.map +1 -0
  86. package/dist/core/router.d.ts +122 -0
  87. package/dist/core/router.d.ts.map +1 -0
  88. package/dist/core/types.d.ts +17 -0
  89. package/dist/core/types.d.ts.map +1 -0
  90. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +4 -1
  91. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  92. package/dist/{internals → deprecated/internals}/middlewares.d.ts +16 -1
  93. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  94. package/dist/{internals → deprecated/internals}/procedure.d.ts +10 -1
  95. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  96. package/dist/deprecated/interop.d.ts +34 -0
  97. package/dist/deprecated/interop.d.ts.map +1 -0
  98. package/dist/{router.d.ts → deprecated/router.d.ts} +26 -5
  99. package/dist/deprecated/router.d.ts.map +1 -0
  100. package/dist/{envelopes-1deb2fa7.mjs → envelopes-af8c2959.mjs} +12 -1
  101. package/dist/{envelopes-a953b930.js → envelopes-b6dd0367.js} +11 -1
  102. package/dist/{TRPCError.d.ts → error/TRPCError.d.ts} +2 -2
  103. package/dist/error/TRPCError.d.ts.map +1 -0
  104. package/dist/error/formatter.d.ts +33 -0
  105. package/dist/error/formatter.d.ts.map +1 -0
  106. package/dist/{internals/errors.d.ts → error/utils.d.ts} +2 -2
  107. package/dist/error/utils.d.ts.map +1 -0
  108. package/dist/http/index.d.ts +1 -1
  109. package/dist/http/index.d.ts.map +1 -1
  110. package/dist/http/internals/getHTTPStatusCode.d.ts +1 -1
  111. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  112. package/dist/http/internals/types.d.ts +10 -8
  113. package/dist/http/internals/types.d.ts.map +1 -1
  114. package/dist/http/resolveHTTPResponse.d.ts +2 -2
  115. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  116. package/dist/http/{responseMeta.d.ts → types.d.ts} +1 -1
  117. package/dist/http/types.d.ts.map +1 -0
  118. package/dist/index.d.ts +3 -2
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +713 -28
  121. package/dist/index.mjs +713 -30
  122. package/dist/internals/transformTRPCResponse.d.ts +1 -1
  123. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  124. package/dist/internals/types.d.ts +23 -0
  125. package/dist/internals/types.d.ts.map +1 -0
  126. package/dist/{nodeHTTPRequestHandler-1cdb6383.mjs → nodeHTTPRequestHandler-174459c5.mjs} +2 -2
  127. package/dist/{nodeHTTPRequestHandler-848f07b5.js → nodeHTTPRequestHandler-6b7c8622.js} +2 -2
  128. package/dist/{resolveHTTPResponse-54a79e6c.mjs → resolveHTTPResponse-8657b8de.mjs} +16 -10
  129. package/dist/{resolveHTTPResponse-ec3dccaa.js → resolveHTTPResponse-fcc8f644.js} +17 -11
  130. package/dist/rpc/envelopes.d.ts +1 -1
  131. package/dist/rpc/envelopes.d.ts.map +1 -1
  132. package/dist/rpc/index.js +1 -1
  133. package/dist/rpc/index.mjs +1 -1
  134. package/dist/rpc/internals/invert.d.ts +18 -0
  135. package/dist/rpc/internals/invert.d.ts.map +1 -0
  136. package/dist/subscription.js +1 -1
  137. package/dist/subscription.mjs +1 -1
  138. package/dist/{transformTRPCResponse-333bed6c.js → transformTRPCResponse-0c261655.js} +0 -27
  139. package/dist/{transformTRPCResponse-e0cba527.mjs → transformTRPCResponse-747b9a68.mjs} +1 -27
  140. package/dist/transformer.d.ts +14 -0
  141. package/dist/transformer.d.ts.map +1 -1
  142. package/dist/types.d.ts +9 -0
  143. package/dist/types.d.ts.map +1 -1
  144. package/package.json +12 -4
  145. package/src/adapters/aws-lambda/index.ts +156 -0
  146. package/src/adapters/aws-lambda/utils.ts +91 -0
  147. package/src/adapters/express.ts +1 -1
  148. package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
  149. package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -2
  150. package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
  151. package/src/adapters/fetch/types.ts +1 -1
  152. package/src/adapters/lambda/index.ts +18 -0
  153. package/src/adapters/next.ts +2 -2
  154. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  155. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +3 -2
  156. package/src/adapters/node-http/types.ts +5 -2
  157. package/src/adapters/standalone.ts +1 -1
  158. package/src/adapters/ws.ts +16 -13
  159. package/src/core/index.ts +5 -0
  160. package/src/core/initTRPC.ts +90 -0
  161. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +366 -0
  162. package/src/core/internals/config.ts +44 -0
  163. package/src/core/internals/getParseFn.ts +47 -0
  164. package/src/core/internals/internalProcedure.ts +265 -0
  165. package/src/core/internals/mergeRouters.ts +57 -0
  166. package/src/core/internals/mergeRoutersGeneric.ts +35 -0
  167. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  168. package/src/core/internals/omitPrototype.ts +9 -0
  169. package/src/core/internals/procedureBuilder.ts +101 -0
  170. package/src/core/internals/utils.ts +64 -0
  171. package/src/core/middleware.ts +93 -0
  172. package/src/core/parser.ts +45 -0
  173. package/src/core/procedure.ts +72 -0
  174. package/src/core/router.ts +358 -0
  175. package/src/core/types.ts +37 -0
  176. package/src/{internals → deprecated/internals}/callProcedure.ts +4 -1
  177. package/src/{internals → deprecated/internals}/middlewares.ts +17 -1
  178. package/src/{internals → deprecated/internals}/procedure.ts +16 -4
  179. package/src/deprecated/interop.ts +169 -0
  180. package/src/{router.ts → deprecated/router.ts} +49 -24
  181. package/src/{TRPCError.ts → error/TRPCError.ts} +3 -3
  182. package/src/error/formatter.ts +51 -0
  183. package/src/{internals/errors.ts → error/utils.ts} +1 -1
  184. package/src/http/index.ts +1 -1
  185. package/src/http/internals/getHTTPStatusCode.ts +1 -1
  186. package/src/http/internals/types.ts +10 -12
  187. package/src/http/resolveHTTPResponse.ts +7 -12
  188. package/src/http/{responseMeta.ts → types.ts} +0 -0
  189. package/src/index.ts +3 -2
  190. package/src/internals/transformTRPCResponse.ts +1 -1
  191. package/src/internals/types.ts +24 -0
  192. package/src/rpc/codes.ts +1 -1
  193. package/src/rpc/envelopes.ts +1 -1
  194. package/src/rpc/internals/invert.ts +27 -0
  195. package/src/subscription.ts +1 -1
  196. package/src/transformer.ts +28 -0
  197. package/src/types.ts +12 -0
  198. package/dist/TRPCError.d.ts.map +0 -1
  199. package/dist/http/responseMeta.d.ts.map +0 -1
  200. package/dist/internals/baseHandlerOptions.d.ts +0 -13
  201. package/dist/internals/baseHandlerOptions.d.ts.map +0 -1
  202. package/dist/internals/callProcedure.d.ts.map +0 -1
  203. package/dist/internals/errors.d.ts.map +0 -1
  204. package/dist/internals/middlewares.d.ts.map +0 -1
  205. package/dist/internals/onErrorFunction.d.ts +0 -11
  206. package/dist/internals/onErrorFunction.d.ts.map +0 -1
  207. package/dist/internals/procedure.d.ts.map +0 -1
  208. package/dist/router.d.ts.map +0 -1
  209. package/src/internals/baseHandlerOptions.ts +0 -13
  210. package/src/internals/onErrorFunction.ts +0 -11
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import type * as express from 'express';
3
- import { AnyRouter } from '../router';
3
+ import { AnyRouter } from '../core';
4
4
  import { nodeHTTPRequestHandler } from './node-http';
5
5
  import {
6
6
  NodeHTTPCreateContextFnOptions,
@@ -1,11 +1,11 @@
1
1
  import { FastifyReply, FastifyRequest } from 'fastify';
2
2
  import { assertNotBrowser } from '../../assertNotBrowser';
3
+ import { AnyRouter, inferRouterContext } from '../../core';
3
4
  import {
4
5
  HTTPBaseHandlerOptions,
5
6
  HTTPRequest,
6
7
  } from '../../http/internals/types';
7
8
  import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
8
- import { AnyRouter, inferRouterContext } from '../../router';
9
9
  import { NodeHTTPCreateContextOption } from '../node-http';
10
10
 
11
11
  assertNotBrowser();
@@ -1,7 +1,7 @@
1
1
  /// <reference types="@fastify/websocket" />
2
2
  import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
3
3
  import { FastifyHandlerOptions } from '.';
4
- import { AnyRouter } from '../..';
4
+ import { AnyRouter } from '../../core';
5
5
  import { NodeHTTPCreateContextFnOptions } from '../node-http';
6
6
  import { WSSHandlerOptions, applyWSSHandler } from '../ws';
7
7
  import { fastifyRequestHandler } from './fastifyRequestHandler';
@@ -45,7 +45,7 @@ export function fastifyTRPCPlugin<TRouter extends AnyRouter>(
45
45
 
46
46
  if (opts.useWSS) {
47
47
  applyWSSHandler<TRouter>({
48
- ...(opts.trpcOptions as WSSHandlerOptions<TRouter>),
48
+ ...(opts.trpcOptions as unknown as WSSHandlerOptions<TRouter>),
49
49
  wss: fastify.websocketServer,
50
50
  });
51
51
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -1,7 +1,7 @@
1
1
  import { assertNotBrowser } from '../../assertNotBrowser';
2
+ import { AnyRouter } from '../../core';
2
3
  import { HTTPRequest } from '../../http/internals/types';
3
4
  import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
4
- import { AnyRouter } from '../../router';
5
5
  import { FetchHandlerOptions } from './types';
6
6
 
7
7
  assertNotBrowser();
@@ -1,5 +1,5 @@
1
+ import { AnyRouter, inferRouterContext } from '../../core';
1
2
  import { HTTPBaseHandlerOptions } from '../../http/internals/types';
2
- import { AnyRouter, inferRouterContext } from '../../router';
3
3
 
4
4
  export type FetchCreateContextFnOptions = {
5
5
  req: Request;
@@ -0,0 +1,18 @@
1
+ import {
2
+ CreateAWSLambdaContextOptions,
3
+ awsLambdaRequestHandler,
4
+ } from '../aws-lambda';
5
+ import { APIGatewayEvent } from '../aws-lambda/utils';
6
+
7
+ export * from '../aws-lambda';
8
+
9
+ /**
10
+ * @deprecated use `aws-lambda` instead
11
+ */
12
+ export type CreateLambdaContextOptions<T extends APIGatewayEvent> =
13
+ CreateAWSLambdaContextOptions<T>;
14
+
15
+ /**
16
+ * @deprecated use `aws-lambda` instead
17
+ */
18
+ export const lambdaRequestHandler = awsLambdaRequestHandler;
@@ -5,8 +5,8 @@ import type {
5
5
  NextApiRequest,
6
6
  NextApiResponse,
7
7
  } from 'next/types';
8
- import { TRPCError } from '../TRPCError';
9
- import { AnyRouter } from '../router';
8
+ import { AnyRouter } from '../core';
9
+ import { TRPCError } from '../error/TRPCError';
10
10
  import { nodeHTTPRequestHandler } from './node-http';
11
11
  import {
12
12
  NodeHTTPCreateContextFnOptions,
@@ -1,4 +1,4 @@
1
- import { TRPCError } from '../../../TRPCError';
1
+ import { TRPCError } from '../../../error/TRPCError';
2
2
  import { NodeHTTPRequest } from '../types';
3
3
 
4
4
  export async function getPostBody({
@@ -1,8 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
2
  import { assertNotBrowser } from '../../assertNotBrowser';
3
+ import { AnyRouter } from '../../core';
4
+ import { inferRouterParams } from '../../core/types';
3
5
  import { HTTPRequest } from '../../http/internals/types';
4
6
  import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
5
- import { AnyRouter, inferRouterContext } from '../../router';
6
7
  import { getPostBody } from './internals/getPostBody';
7
8
  import {
8
9
  NodeHTTPHandlerOptions,
@@ -28,7 +29,7 @@ export async function nodeHTTPRequestHandler<
28
29
  TResponse extends NodeHTTPResponse,
29
30
  >(opts: NodeHTTPRequestHandlerOptions<TRouter, TRequest, TResponse>) {
30
31
  const createContext = async function _createContext(): Promise<
31
- inferRouterContext<TRouter>
32
+ inferRouterParams<TRouter>['_ctx']
32
33
  > {
33
34
  return await opts.createContext?.(opts);
34
35
  };
@@ -1,6 +1,7 @@
1
1
  import { IncomingMessage, ServerResponse } from 'http';
2
+ import { AnyRouter, inferRouterContext } from '../../core';
3
+ import { inferRouterParams } from '../../core';
2
4
  import { HTTPBaseHandlerOptions } from '../../http/internals/types';
3
- import { AnyRouter, inferRouterContext } from '../../router';
4
5
 
5
6
  interface ParsedQs {
6
7
  [key: string]: undefined | string | string[] | ParsedQs | ParsedQs[];
@@ -49,4 +50,6 @@ export type NodeHTTPCreateContextFn<
49
50
  TResponse,
50
51
  > = (
51
52
  opts: NodeHTTPCreateContextFnOptions<TRequest, TResponse>,
52
- ) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
53
+ ) =>
54
+ | inferRouterParams<TRouter>['_ctx']
55
+ | Promise<inferRouterParams<TRouter>['_ctx']>;
@@ -2,7 +2,7 @@
2
2
 
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
  import http from 'http';
5
- import { AnyRouter } from '../router';
5
+ import { AnyRouter } from '../core';
6
6
  import {
7
7
  NodeHTTPCreateContextFnOptions,
8
8
  NodeHTTPHandlerOptions,
@@ -1,12 +1,11 @@
1
1
  import { IncomingMessage } from 'http';
2
2
  import ws from 'ws';
3
- import { TRPCError } from '../TRPCError';
4
- import { BaseHandlerOptions } from '../internals/baseHandlerOptions';
5
- import { callProcedure } from '../internals/callProcedure';
6
- import { getCauseFromUnknown, getErrorFromUnknown } from '../internals/errors';
3
+ import { AnyRouter, ProcedureType, inferRouterContext } from '../core';
4
+ import { TRPCError } from '../error/TRPCError';
5
+ import { getCauseFromUnknown, getErrorFromUnknown } from '../error/utils';
7
6
  import { transformTRPCResponse } from '../internals/transformTRPCResponse';
7
+ import { BaseHandlerOptions } from '../internals/types';
8
8
  import { Unsubscribable, isObservable } from '../observable';
9
- import { AnyRouter, ProcedureType, inferRouterContext } from '../router';
10
9
  import {
11
10
  JSONRPC2,
12
11
  TRPCClientOutgoingMessage,
@@ -14,7 +13,10 @@ import {
14
13
  TRPCResponseMessage,
15
14
  } from '../rpc';
16
15
  import { CombinedDataTransformer } from '../transformer';
17
- import { NodeHTTPCreateContextOption } from './node-http';
16
+ import {
17
+ NodeHTTPCreateContextFnOptions,
18
+ NodeHTTPCreateContextOption,
19
+ } from './node-http';
18
20
 
19
21
  /* istanbul ignore next */
20
22
  function assertIsObject(obj: unknown): asserts obj is Record<string, unknown> {
@@ -98,6 +100,11 @@ export type WSSHandlerOptions<TRouter extends AnyRouter> = BaseHandlerOptions<
98
100
  process?: NodeJS.Process;
99
101
  } & NodeHTTPCreateContextOption<TRouter, IncomingMessage, ws>;
100
102
 
103
+ export type CreateWSSContextFnOptions = NodeHTTPCreateContextFnOptions<
104
+ IncomingMessage,
105
+ ws
106
+ >;
107
+
101
108
  export function applyWSSHandler<TRouter extends AnyRouter>(
102
109
  opts: WSSHandlerOptions<TRouter>,
103
110
  ) {
@@ -152,13 +159,9 @@ export function applyWSSHandler<TRouter extends AnyRouter>(
152
159
  const type = msg.method;
153
160
  try {
154
161
  await ctxPromise; // asserts context has been set
155
- const result = await callProcedure({
156
- path,
157
- input,
158
- type,
159
- router,
160
- ctx,
161
- });
162
+
163
+ const caller = router.createCaller(ctx);
164
+ const result = await caller[type](path, input as any);
162
165
 
163
166
  if (type === 'subscription') {
164
167
  if (!isObservable(result)) {
@@ -0,0 +1,5 @@
1
+ export type { AnyRouter } from './router';
2
+ export type { Procedure, ProcedureParams } from './procedure';
3
+
4
+ export { initTRPC } from './initTRPC';
5
+ export * from './types';
@@ -0,0 +1,90 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import {
3
+ DefaultErrorShape,
4
+ ErrorFormatter,
5
+ ErrorFormatterShape,
6
+ defaultFormatter,
7
+ } from '../error/formatter';
8
+ import {
9
+ CombinedDataTransformer,
10
+ DataTransformerOptions,
11
+ DefaultDataTransformer,
12
+ defaultTransformer,
13
+ getDataTransformer,
14
+ } from '../transformer';
15
+ import {
16
+ CreateInitGenerics,
17
+ CreateRootConfig,
18
+ InitGenerics,
19
+ InitOptions,
20
+ } from './internals/config';
21
+ import { mergeRoutersGeneric } from './internals/mergeRoutersGeneric';
22
+ import { createBuilder } from './internals/procedureBuilder';
23
+ import { PickFirstDefined, ValidateShape } from './internals/utils';
24
+ import { createMiddlewareFactory } from './middleware';
25
+ import { createRouterFactory } from './router';
26
+
27
+ export function initTRPC<TParams extends Partial<InitGenerics> = {}>() {
28
+ type $Generics = CreateInitGenerics<{
29
+ ctx: TParams['ctx'] extends undefined ? {} : NonNullable<TParams['ctx']>;
30
+ meta: TParams['meta'] extends undefined ? {} : NonNullable<TParams['meta']>;
31
+ }>;
32
+
33
+ type $Context = $Generics['ctx'];
34
+ type $Meta = $Generics['meta'];
35
+ type $Options = Partial<InitOptions<$Generics>>;
36
+
37
+ return function initTRPCInner<TOptions extends $Options>(
38
+ options?: ValidateShape<TOptions, $Options>,
39
+ ) {
40
+ type $Formatter = PickFirstDefined<
41
+ TOptions['errorFormatter'],
42
+ ErrorFormatter<$Context, DefaultErrorShape>
43
+ >;
44
+ type $Transformer = TOptions['transformer'] extends DataTransformerOptions
45
+ ? TOptions['transformer'] extends undefined
46
+ ? DefaultDataTransformer
47
+ : CombinedDataTransformer
48
+ : DefaultDataTransformer;
49
+ type $ErrorShape = ErrorFormatterShape<$Formatter>;
50
+
51
+ type $Config = CreateRootConfig<{
52
+ ctx: $Context;
53
+ meta: $Meta;
54
+ errorShape: $ErrorShape;
55
+ transformer: $Transformer;
56
+ }>;
57
+
58
+ const errorFormatter = options?.errorFormatter ?? defaultFormatter;
59
+ const transformer = getDataTransformer(
60
+ options?.transformer ?? defaultTransformer,
61
+ );
62
+ return {
63
+ /**
64
+ * These are just types, they can't be used
65
+ * @internal
66
+ */
67
+ _config: null as unknown as $Config,
68
+ /**
69
+ * Builder object for creating procedures
70
+ */
71
+ procedure: createBuilder<$Context, $Meta>(),
72
+ /**
73
+ * Create reusable middlewares
74
+ */
75
+ middleware: createMiddlewareFactory<$Context, $Meta>(),
76
+ /**
77
+ * Create a router
78
+ * FIXME this should also use error formatter
79
+ */
80
+ router: createRouterFactory<$Config>({
81
+ errorFormatter,
82
+ transformer,
83
+ }),
84
+ /**
85
+ * Merge Routers
86
+ */
87
+ mergeRouters: mergeRoutersGeneric,
88
+ };
89
+ };
90
+ }