@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.
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +99 -19
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
- package/dist/{TRPCError-ddec3395.js → TRPCError-9050a68d.js} +0 -0
- package/dist/{TRPCError-7971540a.mjs → TRPCError-b7fa0c31.mjs} +0 -0
- package/dist/adapters/aws-lambda/index.d.ts +14 -0
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/utils.d.ts +34 -0
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +5 -5
- package/dist/adapters/express.mjs +5 -5
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/fastify/index.mjs +4 -4
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +4 -4
- package/dist/adapters/fetch/index.mjs +4 -4
- package/dist/adapters/fetch/types.d.ts +1 -1
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/lambda/index.d.ts +12 -0
- package/dist/adapters/lambda/index.d.ts.map +1 -0
- package/dist/adapters/next.d.ts +1 -1
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +5 -5
- package/dist/adapters/next.mjs +5 -5
- package/dist/adapters/node-http/index.js +5 -5
- package/dist/adapters/node-http/index.mjs +5 -5
- package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +3 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +2 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -5
- package/dist/adapters/standalone.mjs +5 -5
- package/dist/adapters/ws.d.ts +5 -3
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +4 -9
- package/dist/adapters/ws.mjs +4 -9
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/initTRPC.d.ts +82 -0
- package/dist/core/initTRPC.d.ts.map +1 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +262 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/config.d.ts +38 -0
- package/dist/core/internals/config.d.ts.map +1 -0
- package/dist/core/internals/getParseFn.d.ts +9 -0
- package/dist/core/internals/getParseFn.d.ts.map +1 -0
- package/dist/core/internals/internalProcedure.d.ts +61 -0
- package/dist/core/internals/internalProcedure.d.ts.map +1 -0
- package/dist/core/internals/mergeRouters.d.ts +3 -0
- package/dist/core/internals/mergeRouters.d.ts.map +1 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts +21 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
- package/dist/core/internals/omitPrototype.d.ts +6 -0
- package/dist/core/internals/omitPrototype.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +72 -0
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
- package/dist/core/internals/utils.d.ts +44 -0
- package/dist/core/internals/utils.d.ts.map +1 -0
- package/dist/core/middleware.d.ts +78 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/parser.d.ts +25 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/procedure.d.ts +57 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/router.d.ts +122 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/types.d.ts +17 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/callProcedure.d.ts +4 -1
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/middlewares.d.ts +16 -1
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/procedure.d.ts +10 -1
- package/dist/deprecated/internals/procedure.d.ts.map +1 -0
- package/dist/deprecated/interop.d.ts +34 -0
- package/dist/deprecated/interop.d.ts.map +1 -0
- package/dist/{router.d.ts → deprecated/router.d.ts} +26 -5
- package/dist/deprecated/router.d.ts.map +1 -0
- package/dist/{envelopes-1deb2fa7.mjs → envelopes-af8c2959.mjs} +12 -1
- package/dist/{envelopes-a953b930.js → envelopes-b6dd0367.js} +11 -1
- package/dist/{TRPCError.d.ts → error/TRPCError.d.ts} +2 -2
- package/dist/error/TRPCError.d.ts.map +1 -0
- package/dist/error/formatter.d.ts +33 -0
- package/dist/error/formatter.d.ts.map +1 -0
- package/dist/{internals/errors.d.ts → error/utils.d.ts} +2 -2
- package/dist/error/utils.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +10 -8
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +2 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/{responseMeta.d.ts → types.d.ts} +1 -1
- package/dist/http/types.d.ts.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +713 -28
- package/dist/index.mjs +713 -30
- package/dist/internals/transformTRPCResponse.d.ts +1 -1
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/internals/types.d.ts +23 -0
- package/dist/internals/types.d.ts.map +1 -0
- package/dist/{nodeHTTPRequestHandler-1cdb6383.mjs → nodeHTTPRequestHandler-174459c5.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-848f07b5.js → nodeHTTPRequestHandler-6b7c8622.js} +2 -2
- package/dist/{resolveHTTPResponse-54a79e6c.mjs → resolveHTTPResponse-8657b8de.mjs} +16 -10
- package/dist/{resolveHTTPResponse-ec3dccaa.js → resolveHTTPResponse-fcc8f644.js} +17 -11
- package/dist/rpc/envelopes.d.ts +1 -1
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -1
- package/dist/rpc/index.mjs +1 -1
- package/dist/rpc/internals/invert.d.ts +18 -0
- package/dist/rpc/internals/invert.d.ts.map +1 -0
- package/dist/subscription.js +1 -1
- package/dist/subscription.mjs +1 -1
- package/dist/{transformTRPCResponse-333bed6c.js → transformTRPCResponse-0c261655.js} +0 -27
- package/dist/{transformTRPCResponse-e0cba527.mjs → transformTRPCResponse-747b9a68.mjs} +1 -27
- package/dist/transformer.d.ts +14 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/adapters/aws-lambda/index.ts +156 -0
- package/src/adapters/aws-lambda/utils.ts +91 -0
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -2
- package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
- package/src/adapters/fetch/types.ts +1 -1
- package/src/adapters/lambda/index.ts +18 -0
- package/src/adapters/next.ts +2 -2
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +3 -2
- package/src/adapters/node-http/types.ts +5 -2
- package/src/adapters/standalone.ts +1 -1
- package/src/adapters/ws.ts +16 -13
- package/src/core/index.ts +5 -0
- package/src/core/initTRPC.ts +90 -0
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +366 -0
- package/src/core/internals/config.ts +44 -0
- package/src/core/internals/getParseFn.ts +47 -0
- package/src/core/internals/internalProcedure.ts +265 -0
- package/src/core/internals/mergeRouters.ts +57 -0
- package/src/core/internals/mergeRoutersGeneric.ts +35 -0
- package/src/core/internals/mergeWithoutOverrides.ts +19 -0
- package/src/core/internals/omitPrototype.ts +9 -0
- package/src/core/internals/procedureBuilder.ts +101 -0
- package/src/core/internals/utils.ts +64 -0
- package/src/core/middleware.ts +93 -0
- package/src/core/parser.ts +45 -0
- package/src/core/procedure.ts +72 -0
- package/src/core/router.ts +358 -0
- package/src/core/types.ts +37 -0
- package/src/{internals → deprecated/internals}/callProcedure.ts +4 -1
- package/src/{internals → deprecated/internals}/middlewares.ts +17 -1
- package/src/{internals → deprecated/internals}/procedure.ts +16 -4
- package/src/deprecated/interop.ts +169 -0
- package/src/{router.ts → deprecated/router.ts} +49 -24
- package/src/{TRPCError.ts → error/TRPCError.ts} +3 -3
- package/src/error/formatter.ts +51 -0
- package/src/{internals/errors.ts → error/utils.ts} +1 -1
- package/src/http/index.ts +1 -1
- package/src/http/internals/getHTTPStatusCode.ts +1 -1
- package/src/http/internals/types.ts +10 -12
- package/src/http/resolveHTTPResponse.ts +7 -12
- package/src/http/{responseMeta.ts → types.ts} +0 -0
- package/src/index.ts +3 -2
- package/src/internals/transformTRPCResponse.ts +1 -1
- package/src/internals/types.ts +24 -0
- package/src/rpc/codes.ts +1 -1
- package/src/rpc/envelopes.ts +1 -1
- package/src/rpc/internals/invert.ts +27 -0
- package/src/subscription.ts +1 -1
- package/src/transformer.ts +28 -0
- package/src/types.ts +12 -0
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/http/responseMeta.d.ts.map +0 -1
- package/dist/internals/baseHandlerOptions.d.ts +0 -13
- package/dist/internals/baseHandlerOptions.d.ts.map +0 -1
- package/dist/internals/callProcedure.d.ts.map +0 -1
- package/dist/internals/errors.d.ts.map +0 -1
- package/dist/internals/middlewares.d.ts.map +0 -1
- package/dist/internals/onErrorFunction.d.ts +0 -11
- package/dist/internals/onErrorFunction.d.ts.map +0 -1
- package/dist/internals/procedure.d.ts.map +0 -1
- package/dist/router.d.ts.map +0 -1
- package/src/internals/baseHandlerOptions.ts +0 -13
- package/src/internals/onErrorFunction.ts +0 -11
package/src/adapters/express.ts
CHANGED
|
@@ -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 '../
|
|
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();
|
|
@@ -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;
|
package/src/adapters/next.ts
CHANGED
|
@@ -5,8 +5,8 @@ import type {
|
|
|
5
5
|
NextApiRequest,
|
|
6
6
|
NextApiResponse,
|
|
7
7
|
} from 'next/types';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
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,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
|
-
|
|
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
|
-
) =>
|
|
53
|
+
) =>
|
|
54
|
+
| inferRouterParams<TRouter>['_ctx']
|
|
55
|
+
| Promise<inferRouterParams<TRouter>['_ctx']>;
|
package/src/adapters/ws.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { IncomingMessage } from 'http';
|
|
2
2
|
import ws from 'ws';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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,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
|
+
}
|