@trpc/server 10.0.0-alpha.8 → 10.0.0-proxy-alpha.53
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/README.md +79 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +190 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +190 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +186 -0
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -7
- package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -7
- package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -7
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +18 -11
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +18 -11
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +18 -11
- package/adapters/fastify/index.d.ts +1 -0
- package/adapters/fastify/index.js +1 -0
- package/adapters/fetch/index.d.ts +1 -0
- package/adapters/fetch/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/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -4
- package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -4
- package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -4
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -4
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -4
- package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -4
- package/adapters/node-http/index.js +1 -1
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -5
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -5
- package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -5
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +24 -7
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +24 -7
- package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +24 -7
- package/dist/TRPCError-bcb38a84.js +61 -0
- package/dist/TRPCError-e6e632a5.mjs +57 -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/index.js +153 -0
- package/dist/adapters/aws-lambda/index.mjs +149 -0
- package/dist/adapters/aws-lambda/utils.d.ts +35 -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 +14 -13
- package/dist/adapters/express.mjs +14 -13
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +2 -2
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +87 -0
- package/dist/adapters/fastify/index.mjs +82 -0
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
- package/dist/adapters/fetch/index.d.ts +3 -0
- package/dist/adapters/fetch/index.d.ts.map +1 -0
- package/dist/adapters/fetch/index.js +57 -0
- package/dist/adapters/fetch/index.mjs +53 -0
- package/dist/adapters/fetch/types.d.ts +21 -0
- package/dist/adapters/fetch/types.d.ts.map +1 -0
- 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 +2 -2
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +42 -46
- package/dist/adapters/next.mjs +42 -46
- package/dist/adapters/node-http/index.d.ts.map +1 -1
- package/dist/adapters/node-http/index.js +5 -4
- package/dist/adapters/node-http/index.mjs +5 -4
- 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 +2 -2
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +11 -9
- 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 +30 -28
- package/dist/adapters/standalone.mjs +30 -27
- package/dist/adapters/ws.d.ts +8 -6
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +284 -317
- package/dist/adapters/ws.mjs +284 -317
- package/dist/assertNotBrowser.d.ts.map +1 -1
- package/dist/codes-1c24d919.js +47 -0
- package/dist/codes-aaa7d554.mjs +44 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/initTRPC.d.ts +95 -0
- package/dist/core/initTRPC.d.ts.map +1 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +302 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/config.d.ts +36 -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/mergeRouters.d.ts +3 -0
- package/dist/core/internals/mergeRouters.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/prefixObjectKeys.d.ts +2 -0
- package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +124 -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 +87 -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 +89 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/router.d.ts +136 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/types.d.ts +19 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
- package/dist/deprecated/internals/procedure.d.ts +96 -0
- package/dist/deprecated/internals/procedure.d.ts.map +1 -0
- package/dist/deprecated/interop.d.ts +61 -0
- package/dist/deprecated/interop.d.ts.map +1 -0
- package/dist/deprecated/router.d.ts +194 -0
- package/dist/deprecated/router.d.ts.map +1 -0
- package/dist/error/TRPCError.d.ts +11 -0
- 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} +3 -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 +2 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +11 -8
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +4 -4
- 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-47817162.mjs +26 -0
- package/dist/index-9d687d33.js +28 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -516
- package/dist/index.mjs +71 -508
- package/dist/internals/invert.d.ts.map +1 -1
- package/dist/internals/transformTRPCResponse.d.ts +5 -3
- 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/internals.d.ts +11 -0
- package/dist/internals.d.ts.map +1 -0
- package/dist/nodeHTTPRequestHandler-2c467c02.mjs +80 -0
- package/dist/nodeHTTPRequestHandler-6609461a.js +82 -0
- package/dist/observable/index.d.ts +5 -0
- package/dist/observable/index.d.ts.map +1 -0
- package/dist/observable/index.js +157 -0
- package/dist/observable/index.mjs +148 -0
- package/dist/observable/internals/identity.d.ts +2 -0
- package/dist/observable/internals/identity.d.ts.map +1 -0
- package/dist/observable/internals/observableToPromise.d.ts +10 -0
- package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
- package/dist/observable/internals/pipe.d.ts +4 -0
- package/dist/observable/internals/pipe.d.ts.map +1 -0
- package/dist/observable/observable.d.ts +5 -0
- package/dist/observable/observable.d.ts.map +1 -0
- package/dist/observable/operators/index.d.ts +4 -0
- package/dist/observable/operators/index.d.ts.map +1 -0
- package/dist/observable/operators/map.d.ts +3 -0
- package/dist/observable/operators/map.d.ts.map +1 -0
- package/dist/observable/operators/share.d.ts +6 -0
- package/dist/observable/operators/share.d.ts.map +1 -0
- package/dist/observable/operators/tap.d.ts +3 -0
- package/dist/observable/operators/tap.d.ts.map +1 -0
- package/dist/observable/types.d.ts +29 -0
- package/dist/observable/types.d.ts.map +1 -0
- package/dist/observable-b651bf11.js +84 -0
- package/dist/observable-e129ac9d.mjs +81 -0
- package/dist/resolveHTTPResponse-11d52bd0.mjs +255 -0
- package/dist/resolveHTTPResponse-29d4b64a.js +259 -0
- package/dist/router-3ee4babe.js +903 -0
- package/dist/router-a2a75de3.mjs +893 -0
- package/dist/rpc/codes.d.ts +2 -0
- package/dist/rpc/codes.d.ts.map +1 -1
- package/dist/rpc/envelopes.d.ts +64 -41
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.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/shared/createProxy/index.d.ts +12 -0
- package/dist/shared/createProxy/index.d.ts.map +1 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +9 -0
- package/dist/shared/index.mjs +1 -0
- package/dist/subscription.d.ts +3 -52
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +34 -0
- package/dist/subscription.mjs +30 -0
- package/dist/transformTRPCResponse-11ac69cc.js +27 -0
- package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
- package/dist/transformer.d.ts +14 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +37 -10
- package/dist/types.d.ts.map +1 -1
- package/observable/index.d.ts +1 -0
- package/observable/index.js +1 -0
- package/package.json +53 -25
- package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
- package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
- package/rpc/dist/trpc-server-rpc.esm.js +1 -1
- package/rpc/index.js +1 -1
- package/shared/index.d.ts +1 -0
- package/shared/index.js +1 -0
- package/src/adapters/aws-lambda/index.ts +173 -0
- package/src/adapters/aws-lambda/utils.ts +92 -0
- package/src/adapters/express.ts +4 -4
- package/src/adapters/fastify/fastifyRequestHandler.ts +6 -8
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +17 -9
- package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
- package/src/adapters/fetch/index.ts +2 -0
- package/src/adapters/fetch/types.ts +28 -0
- package/src/adapters/lambda/index.ts +18 -0
- package/src/adapters/next.ts +10 -8
- package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
- package/src/adapters/node-http/types.ts +11 -9
- package/src/adapters/standalone.ts +12 -4
- package/src/adapters/ws.ts +150 -91
- package/src/assertNotBrowser.ts +1 -0
- package/src/core/index.ts +15 -0
- package/src/core/initTRPC.ts +94 -0
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +406 -0
- package/src/core/internals/config.ts +43 -0
- package/src/core/internals/getParseFn.ts +47 -0
- package/src/core/internals/mergeRouters.ts +45 -0
- package/src/core/internals/mergeWithoutOverrides.ts +19 -0
- package/src/core/internals/omitPrototype.ts +9 -0
- package/src/core/internals/prefixObjectKeys.ts +9 -0
- package/src/core/internals/procedureBuilder.ts +430 -0
- package/src/core/internals/utils.ts +64 -0
- package/src/core/middleware.ts +96 -0
- package/src/core/parser.ts +45 -0
- package/src/core/procedure.ts +121 -0
- package/src/core/router.ts +351 -0
- package/src/core/types.ts +58 -0
- package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
- package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
- package/src/deprecated/internals/procedure.ts +415 -0
- package/src/deprecated/interop.ts +272 -0
- package/src/{router.ts → deprecated/router.ts} +221 -108
- package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
- package/src/error/formatter.ts +51 -0
- package/src/{internals/errors.ts → error/utils.ts} +24 -5
- package/src/http/index.ts +1 -1
- package/src/http/internals/getHTTPStatusCode.ts +3 -2
- package/src/http/internals/types.ts +11 -14
- package/src/http/resolveHTTPResponse.ts +34 -39
- package/src/http/{ResponseMeta.ts → types.ts} +0 -0
- package/src/index.ts +4 -7
- package/src/internals/transformTRPCResponse.ts +21 -16
- package/src/internals/types.ts +24 -0
- package/src/internals.ts +14 -0
- package/src/observable/index.ts +4 -0
- package/src/observable/internals/identity.ts +3 -0
- package/src/observable/internals/observableToPromise.ts +49 -0
- package/src/observable/internals/pipe.ts +23 -0
- package/src/observable/observable.test.ts +101 -0
- package/src/observable/observable.ts +78 -0
- package/src/observable/operators/index.ts +3 -0
- package/src/observable/operators/map.test.ts +92 -0
- package/src/observable/operators/map.ts +25 -0
- package/src/observable/operators/share.test.ts +60 -0
- package/src/observable/operators/share.ts +67 -0
- package/src/observable/operators/tap.ts +26 -0
- package/src/observable/types.ts +69 -0
- package/src/rpc/codes.ts +2 -1
- package/src/rpc/envelopes.ts +94 -68
- package/src/rpc/internals/invert.ts +27 -0
- package/src/shared/createProxy/index.ts +38 -0
- package/src/shared/index.ts +1 -0
- package/src/subscription.ts +7 -125
- package/src/transformer.ts +28 -0
- package/src/types.ts +45 -15
- package/subscription/index.d.ts +1 -0
- package/subscription/index.js +1 -0
- package/adapters/fastify/package.json +0 -4
- package/dist/TRPCError.d.ts +0 -19
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/adapters/express.ts.js +0 -1
- package/dist/adapters/next.ts.js +0 -1
- package/dist/adapters/node-http/index.ts.js +0 -1
- package/dist/adapters/standalone.ts.js +0 -1
- package/dist/adapters/ws.ts.js +0 -1
- package/dist/codes-7a3d4f65.mjs +0 -56
- package/dist/codes-7f46544e.js +0 -60
- package/dist/deprecated/LegacyRouter.d.ts +0 -3
- package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
- package/dist/deprecated/createHttpServer.d.ts +0 -19
- package/dist/deprecated/createHttpServer.d.ts.map +0 -1
- package/dist/deprecated/requestHandler.d.ts +0 -15
- package/dist/deprecated/requestHandler.d.ts.map +0 -1
- package/dist/http/ResponseMeta.d.ts.map +0 -1
- package/dist/index.ts.js +0 -1
- package/dist/internals/BaseHandlerOptions.d.ts +0 -13
- package/dist/internals/BaseHandlerOptions.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/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/procedure.d.ts +0 -74
- package/dist/internals/procedure.d.ts.map +0 -1
- package/dist/internals/wrapCallSafe.d.ts +0 -16
- package/dist/internals/wrapCallSafe.d.ts.map +0 -1
- package/dist/nodeHTTPRequestHandler-10e6d2f9.mjs +0 -394
- package/dist/nodeHTTPRequestHandler-d7c307d3.js +0 -399
- package/dist/router.d.ts +0 -176
- package/dist/router.d.ts.map +0 -1
- package/dist/rpc/index.ts.js +0 -1
- package/dist/subscription-5b7e1eba.js +0 -136
- package/dist/subscription-e1d42e69.mjs +0 -133
- package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
- package/dist/transformTRPCResponse-bd24f548.js +0 -114
- package/dist/ws/index.d.ts +0 -7
- package/dist/ws/index.d.ts.map +0 -1
- package/dist/ws/index.js +0 -15
- package/dist/ws/index.mjs +0 -11
- package/dist/ws/index.ts.js +0 -1
- package/src/deprecated/LegacyRouter.ts +0 -3
- package/src/deprecated/createHttpServer.ts +0 -29
- package/src/deprecated/requestHandler.ts +0 -26
- package/src/internals/BaseHandlerOptions.ts +0 -13
- package/src/internals/OnErrorFunction.ts +0 -11
- package/src/internals/procedure.ts +0 -283
- package/src/internals/wrapCallSafe.ts +0 -19
- package/src/ws/index.ts +0 -8
- package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
- package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
- package/ws/dist/trpc-server-ws.cjs.js +0 -7
- package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
- package/ws/dist/trpc-server-ws.esm.js +0 -11
- package/ws/index.d.ts +0 -1
- package/ws/index.js +0 -1
|
@@ -1,56 +1,76 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
import { assertNotBrowser } from '
|
|
4
|
-
import {
|
|
2
|
+
import { assertNotBrowser } from '../assertNotBrowser';
|
|
3
|
+
import { TRPCError } from '../error/TRPCError';
|
|
4
|
+
import { defaultFormatter } from '../error/formatter';
|
|
5
|
+
import { getHTTPStatusCodeFromError } from '../http/internals/getHTTPStatusCode';
|
|
6
|
+
import { Observable, inferObservableValue } from '../observable';
|
|
7
|
+
import {
|
|
8
|
+
TRPCErrorShape,
|
|
9
|
+
TRPC_ERROR_CODES_BY_KEY,
|
|
10
|
+
TRPC_ERROR_CODE_KEY,
|
|
11
|
+
TRPC_ERROR_CODE_NUMBER,
|
|
12
|
+
} from '../rpc';
|
|
13
|
+
import {
|
|
14
|
+
CombinedDataTransformer,
|
|
15
|
+
DataTransformerOptions,
|
|
16
|
+
defaultTransformer,
|
|
17
|
+
} from '../transformer';
|
|
18
|
+
import { FlatOverwrite, Prefixer, ThenArg } from '../types';
|
|
5
19
|
import { MiddlewareFunction } from './internals/middlewares';
|
|
6
20
|
import {
|
|
7
|
-
createProcedure,
|
|
8
21
|
CreateProcedureOptions,
|
|
9
22
|
CreateProcedureWithInput,
|
|
10
23
|
CreateProcedureWithInputOutputParser,
|
|
11
24
|
CreateProcedureWithoutInput,
|
|
12
|
-
inferProcedureFromOptions,
|
|
13
25
|
Procedure,
|
|
14
26
|
ProcedureCallOptions,
|
|
27
|
+
createProcedure,
|
|
28
|
+
inferProcedureFromOptions,
|
|
15
29
|
} from './internals/procedure';
|
|
16
|
-
import {
|
|
17
|
-
TRPCErrorShape,
|
|
18
|
-
TRPC_ERROR_CODES_BY_KEY,
|
|
19
|
-
TRPC_ERROR_CODE_KEY,
|
|
20
|
-
TRPC_ERROR_CODE_NUMBER,
|
|
21
|
-
} from './rpc';
|
|
22
|
-
import { Subscription } from './subscription';
|
|
23
|
-
import { CombinedDataTransformer, DataTransformerOptions } from './transformer';
|
|
24
|
-
import { TRPCError } from './TRPCError';
|
|
25
|
-
import { flatten, Prefixer, ThenArg } from './types';
|
|
30
|
+
import { MigrateRouter, migrateRouter } from './interop';
|
|
26
31
|
|
|
27
32
|
assertNotBrowser();
|
|
28
33
|
|
|
34
|
+
export type { Procedure } from './internals/procedure';
|
|
35
|
+
|
|
29
36
|
/**
|
|
30
37
|
* @public
|
|
38
|
+
* @deprecated
|
|
31
39
|
*/
|
|
32
40
|
export type ProcedureType = 'query' | 'mutation' | 'subscription';
|
|
33
41
|
|
|
34
42
|
/**
|
|
35
43
|
* @internal
|
|
44
|
+
* @deprecated
|
|
36
45
|
*/
|
|
37
46
|
export type ProcedureRecord<
|
|
38
47
|
TInputContext = any,
|
|
39
48
|
TContext = any,
|
|
49
|
+
TMeta = any,
|
|
40
50
|
TInput = any,
|
|
41
51
|
TParsedInput = any,
|
|
42
52
|
TOutput = any,
|
|
53
|
+
TParsedOutput = any,
|
|
43
54
|
> = Record<
|
|
44
55
|
string,
|
|
45
|
-
Procedure<
|
|
56
|
+
Procedure<
|
|
57
|
+
TInputContext,
|
|
58
|
+
TContext,
|
|
59
|
+
TMeta,
|
|
60
|
+
TInput,
|
|
61
|
+
TParsedInput,
|
|
62
|
+
TOutput,
|
|
63
|
+
TParsedOutput
|
|
64
|
+
>
|
|
46
65
|
>;
|
|
47
66
|
|
|
48
67
|
/**
|
|
49
68
|
* @public
|
|
69
|
+
* @deprecated
|
|
50
70
|
*/
|
|
51
71
|
export type inferProcedureInput<
|
|
52
|
-
TProcedure extends Procedure<any, any, any, any, any>,
|
|
53
|
-
> = TProcedure extends Procedure<any, any, infer Input, any, any>
|
|
72
|
+
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
73
|
+
> = TProcedure extends Procedure<any, any, any, infer Input, any, any, any>
|
|
54
74
|
? undefined extends Input
|
|
55
75
|
? Input | null | void // void is necessary to allow procedures with nullish input to be called without an input
|
|
56
76
|
: Input
|
|
@@ -58,28 +78,29 @@ export type inferProcedureInput<
|
|
|
58
78
|
|
|
59
79
|
/**
|
|
60
80
|
* @public
|
|
81
|
+
* @deprecated
|
|
61
82
|
*/
|
|
62
83
|
export type inferAsyncReturnType<TFunction extends (...args: any) => any> =
|
|
63
84
|
ThenArg<ReturnType<TFunction>>;
|
|
64
85
|
|
|
65
86
|
/**
|
|
66
87
|
* @public
|
|
88
|
+
* @deprecated
|
|
67
89
|
*/
|
|
68
90
|
export type inferProcedureOutput<
|
|
69
|
-
TProcedure extends Procedure<any, any, any, any, any>,
|
|
91
|
+
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
70
92
|
> = inferAsyncReturnType<TProcedure['call']>;
|
|
71
93
|
|
|
72
94
|
/**
|
|
73
95
|
* @public
|
|
74
96
|
* @beta
|
|
97
|
+
* @deprecated
|
|
75
98
|
*/
|
|
76
99
|
export type inferSubscriptionOutput<
|
|
77
100
|
TRouter extends AnyRouter,
|
|
78
101
|
TPath extends keyof TRouter['_def']['subscriptions'],
|
|
79
|
-
> =
|
|
80
|
-
inferAsyncReturnType<
|
|
81
|
-
TRouter['_def']['subscriptions'][TPath]['call']
|
|
82
|
-
>['output']
|
|
102
|
+
> = inferObservableValue<
|
|
103
|
+
inferAsyncReturnType<TRouter['_def']['subscriptions'][TPath]['call']>
|
|
83
104
|
>;
|
|
84
105
|
|
|
85
106
|
function getDataTransformer(
|
|
@@ -92,10 +113,11 @@ function getDataTransformer(
|
|
|
92
113
|
}
|
|
93
114
|
/**
|
|
94
115
|
* @internal
|
|
116
|
+
* @deprecated
|
|
95
117
|
*/
|
|
96
118
|
export type inferHandlerInput<
|
|
97
|
-
TProcedure extends Procedure<any, any, any, any, any>,
|
|
98
|
-
> = TProcedure extends Procedure<any, any, infer TInput, any, any>
|
|
119
|
+
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
120
|
+
> = TProcedure extends Procedure<any, any, any, infer TInput, any, any, any>
|
|
99
121
|
? undefined extends TInput // ? is input optional
|
|
100
122
|
? unknown extends TInput // ? is input unset
|
|
101
123
|
? [(null | undefined)?] // -> there is no input
|
|
@@ -113,13 +135,30 @@ type inferHandlerFn<TProcedures extends ProcedureRecord> = <
|
|
|
113
135
|
|
|
114
136
|
/**
|
|
115
137
|
* @internal
|
|
138
|
+
* @deprecated
|
|
116
139
|
*/
|
|
117
140
|
export type inferRouterContext<TRouter extends AnyRouter> = Parameters<
|
|
118
141
|
TRouter['createCaller']
|
|
119
142
|
>[0];
|
|
120
143
|
|
|
144
|
+
/**
|
|
145
|
+
* @internal
|
|
146
|
+
*/
|
|
147
|
+
export type inferRouterMeta<TRouter extends AnyRouter> = TRouter extends Router<
|
|
148
|
+
any,
|
|
149
|
+
any,
|
|
150
|
+
infer TMeta,
|
|
151
|
+
any,
|
|
152
|
+
any,
|
|
153
|
+
any,
|
|
154
|
+
any
|
|
155
|
+
>
|
|
156
|
+
? TMeta
|
|
157
|
+
: {};
|
|
158
|
+
|
|
121
159
|
/**
|
|
122
160
|
* @public
|
|
161
|
+
* @deprecated
|
|
123
162
|
*/
|
|
124
163
|
export type AnyRouter<TContext = any> = Router<
|
|
125
164
|
any,
|
|
@@ -127,11 +166,13 @@ export type AnyRouter<TContext = any> = Router<
|
|
|
127
166
|
any,
|
|
128
167
|
any,
|
|
129
168
|
any,
|
|
169
|
+
any,
|
|
130
170
|
any
|
|
131
171
|
>;
|
|
132
172
|
|
|
133
173
|
/**
|
|
134
174
|
* @internal
|
|
175
|
+
* @deprecated
|
|
135
176
|
*/
|
|
136
177
|
export type inferRouterError<TRouter extends AnyRouter> = ReturnType<
|
|
137
178
|
TRouter['getErrorShape']
|
|
@@ -147,6 +188,7 @@ const PROCEDURE_DEFINITION_MAP: Record<
|
|
|
147
188
|
|
|
148
189
|
/**
|
|
149
190
|
* @internal
|
|
191
|
+
* @deprecated
|
|
150
192
|
*/
|
|
151
193
|
export type ErrorFormatter<TContext, TShape extends TRPCErrorShape<number>> = ({
|
|
152
194
|
error,
|
|
@@ -168,6 +210,7 @@ type DefaultErrorData = {
|
|
|
168
210
|
|
|
169
211
|
/**
|
|
170
212
|
* @internal
|
|
213
|
+
* @deprecated
|
|
171
214
|
*/
|
|
172
215
|
export interface DefaultErrorShape
|
|
173
216
|
extends TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, DefaultErrorData> {
|
|
@@ -192,34 +235,32 @@ function safeObject<TObj1, TObj2>(obj1: TObj1, obj2: TObj2): TObj1 & TObj2;
|
|
|
192
235
|
function safeObject(...args: unknown[]) {
|
|
193
236
|
return Object.assign(Object.create(null), ...args);
|
|
194
237
|
}
|
|
195
|
-
const defaultFormatter: ErrorFormatter<any, any> = ({
|
|
196
|
-
shape,
|
|
197
|
-
}: {
|
|
198
|
-
shape: DefaultErrorShape;
|
|
199
|
-
}) => {
|
|
200
|
-
return shape;
|
|
201
|
-
};
|
|
202
|
-
const defaultTransformer: CombinedDataTransformer = {
|
|
203
|
-
input: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
204
|
-
output: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
205
|
-
};
|
|
206
|
-
|
|
207
238
|
type SwapProcedureContext<
|
|
208
|
-
TProcedure extends Procedure<any, any, any, any, any>,
|
|
239
|
+
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
209
240
|
TNewContext,
|
|
210
241
|
> = TProcedure extends Procedure<
|
|
211
242
|
infer TInputContext,
|
|
212
243
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
213
244
|
infer _TOldContext,
|
|
245
|
+
infer TMeta,
|
|
214
246
|
infer TInput,
|
|
215
247
|
infer TParsedInput,
|
|
216
|
-
infer TOutput
|
|
248
|
+
infer TOutput,
|
|
249
|
+
infer TParsedOutput
|
|
217
250
|
>
|
|
218
|
-
? Procedure<
|
|
251
|
+
? Procedure<
|
|
252
|
+
TInputContext,
|
|
253
|
+
TNewContext,
|
|
254
|
+
TMeta,
|
|
255
|
+
TInput,
|
|
256
|
+
TParsedInput,
|
|
257
|
+
TOutput,
|
|
258
|
+
TParsedOutput
|
|
259
|
+
>
|
|
219
260
|
: never;
|
|
220
261
|
|
|
221
262
|
type SwapContext<
|
|
222
|
-
TObj extends ProcedureRecord<any, any, any, any>,
|
|
263
|
+
TObj extends ProcedureRecord<any, any, any, any, any, any>,
|
|
223
264
|
TNewContext,
|
|
224
265
|
> = {
|
|
225
266
|
[P in keyof TObj]: SwapProcedureContext<TObj[P], TNewContext>;
|
|
@@ -227,17 +268,38 @@ type SwapContext<
|
|
|
227
268
|
|
|
228
269
|
/**
|
|
229
270
|
* @internal The type signature of this class may change without warning.
|
|
271
|
+
* @deprecated
|
|
230
272
|
*/
|
|
231
273
|
export class Router<
|
|
232
274
|
TInputContext,
|
|
233
275
|
TContext,
|
|
234
|
-
|
|
235
|
-
|
|
276
|
+
TMeta extends Record<string, any>,
|
|
277
|
+
TQueries extends ProcedureRecord<
|
|
278
|
+
TInputContext,
|
|
279
|
+
TContext,
|
|
280
|
+
any,
|
|
281
|
+
any,
|
|
282
|
+
any,
|
|
283
|
+
any,
|
|
284
|
+
any
|
|
285
|
+
>,
|
|
286
|
+
TMutations extends ProcedureRecord<
|
|
287
|
+
TInputContext,
|
|
288
|
+
TContext,
|
|
289
|
+
any,
|
|
290
|
+
any,
|
|
291
|
+
any,
|
|
292
|
+
any,
|
|
293
|
+
any
|
|
294
|
+
>,
|
|
236
295
|
TSubscriptions extends ProcedureRecord<
|
|
237
296
|
TInputContext,
|
|
238
297
|
TContext,
|
|
239
298
|
unknown,
|
|
240
|
-
|
|
299
|
+
unknown,
|
|
300
|
+
Observable<unknown, unknown>,
|
|
301
|
+
unknown,
|
|
302
|
+
unknown
|
|
241
303
|
>,
|
|
242
304
|
TErrorShape extends TRPCErrorShape<number>,
|
|
243
305
|
> {
|
|
@@ -245,7 +307,7 @@ export class Router<
|
|
|
245
307
|
queries: TQueries;
|
|
246
308
|
mutations: TMutations;
|
|
247
309
|
subscriptions: TSubscriptions;
|
|
248
|
-
middlewares: MiddlewareFunction<TInputContext, TContext>[];
|
|
310
|
+
middlewares: MiddlewareFunction<TInputContext, TContext, TMeta>[];
|
|
249
311
|
errorFormatter: ErrorFormatter<TContext, TErrorShape>;
|
|
250
312
|
transformer: CombinedDataTransformer;
|
|
251
313
|
};
|
|
@@ -254,7 +316,7 @@ export class Router<
|
|
|
254
316
|
queries?: TQueries;
|
|
255
317
|
mutations?: TMutations;
|
|
256
318
|
subscriptions?: TSubscriptions;
|
|
257
|
-
middlewares?: MiddlewareFunction<TInputContext, TContext>[];
|
|
319
|
+
middlewares?: MiddlewareFunction<TInputContext, TContext, TMeta>[];
|
|
258
320
|
errorFormatter?: ErrorFormatter<TContext, TErrorShape>;
|
|
259
321
|
transformer?: CombinedDataTransformer;
|
|
260
322
|
}) {
|
|
@@ -273,35 +335,46 @@ export class Router<
|
|
|
273
335
|
TPrefix extends string,
|
|
274
336
|
>(procedures: TProcedures, prefix: TPrefix): Prefixer<TProcedures, TPrefix> {
|
|
275
337
|
const eps: ProcedureRecord = safeObject();
|
|
276
|
-
for (const key
|
|
277
|
-
eps[prefix + key] =
|
|
338
|
+
for (const [key, procedure] of Object.entries(procedures)) {
|
|
339
|
+
eps[prefix + key] = procedure;
|
|
278
340
|
}
|
|
279
341
|
return eps as any;
|
|
280
342
|
}
|
|
281
343
|
|
|
282
|
-
public query<
|
|
344
|
+
public query<
|
|
345
|
+
TPath extends string,
|
|
346
|
+
TInput,
|
|
347
|
+
TParsedInput,
|
|
348
|
+
TOutput,
|
|
349
|
+
TParsedOutput,
|
|
350
|
+
>(
|
|
283
351
|
path: TPath,
|
|
284
352
|
procedure: CreateProcedureWithInputOutputParser<
|
|
285
353
|
TContext,
|
|
354
|
+
TMeta,
|
|
286
355
|
TInput,
|
|
287
356
|
TParsedInput,
|
|
288
|
-
TOutput
|
|
357
|
+
TOutput,
|
|
358
|
+
TParsedOutput
|
|
289
359
|
>,
|
|
290
360
|
): Router<
|
|
291
361
|
TInputContext,
|
|
292
362
|
TContext,
|
|
363
|
+
TMeta,
|
|
293
364
|
TQueries &
|
|
294
365
|
Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
|
|
295
366
|
TMutations,
|
|
296
367
|
TSubscriptions,
|
|
297
368
|
TErrorShape
|
|
298
369
|
>;
|
|
370
|
+
|
|
299
371
|
public query<TPath extends string, TInput, TOutput>(
|
|
300
372
|
path: TPath,
|
|
301
|
-
procedure: CreateProcedureWithInput<TContext,
|
|
373
|
+
procedure: CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>,
|
|
302
374
|
): Router<
|
|
303
375
|
TInputContext,
|
|
304
376
|
TContext,
|
|
377
|
+
TMeta,
|
|
305
378
|
TQueries &
|
|
306
379
|
Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
|
|
307
380
|
TMutations,
|
|
@@ -309,12 +382,18 @@ export class Router<
|
|
|
309
382
|
TErrorShape
|
|
310
383
|
>;
|
|
311
384
|
|
|
312
|
-
public query<TPath extends string, TOutput>(
|
|
385
|
+
public query<TPath extends string, TOutput, TParsedOutput>(
|
|
313
386
|
path: TPath,
|
|
314
|
-
procedure: CreateProcedureWithoutInput<
|
|
387
|
+
procedure: CreateProcedureWithoutInput<
|
|
388
|
+
TContext,
|
|
389
|
+
TMeta,
|
|
390
|
+
TOutput,
|
|
391
|
+
TParsedOutput
|
|
392
|
+
>,
|
|
315
393
|
): Router<
|
|
316
394
|
TInputContext,
|
|
317
395
|
TContext,
|
|
396
|
+
TMeta,
|
|
318
397
|
TQueries &
|
|
319
398
|
Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
|
|
320
399
|
TMutations,
|
|
@@ -324,9 +403,9 @@ export class Router<
|
|
|
324
403
|
|
|
325
404
|
query(
|
|
326
405
|
path: string,
|
|
327
|
-
procedure: CreateProcedureOptions<TContext, any, any, any>,
|
|
406
|
+
procedure: CreateProcedureOptions<TContext, TMeta, any, any, any, any>,
|
|
328
407
|
) {
|
|
329
|
-
const router = new Router<TContext, TContext, any, {}, {}, any>({
|
|
408
|
+
const router = new Router<TContext, TContext, TMeta, any, {}, {}, any>({
|
|
330
409
|
queries: safeObject({
|
|
331
410
|
[path]: createProcedure(procedure),
|
|
332
411
|
}),
|
|
@@ -335,29 +414,40 @@ export class Router<
|
|
|
335
414
|
return this.merge(router);
|
|
336
415
|
}
|
|
337
416
|
|
|
338
|
-
public mutation<
|
|
417
|
+
public mutation<
|
|
418
|
+
TPath extends string,
|
|
419
|
+
TInput,
|
|
420
|
+
TParsedInput,
|
|
421
|
+
TOutput,
|
|
422
|
+
TParsedOutput,
|
|
423
|
+
>(
|
|
339
424
|
path: TPath,
|
|
340
425
|
procedure: CreateProcedureWithInputOutputParser<
|
|
341
426
|
TContext,
|
|
427
|
+
TMeta,
|
|
342
428
|
TInput,
|
|
343
429
|
TParsedInput,
|
|
344
|
-
TOutput
|
|
430
|
+
TOutput,
|
|
431
|
+
TParsedOutput
|
|
345
432
|
>,
|
|
346
433
|
): Router<
|
|
347
434
|
TInputContext,
|
|
348
435
|
TContext,
|
|
436
|
+
TMeta,
|
|
349
437
|
TQueries,
|
|
350
438
|
TMutations &
|
|
351
439
|
Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
|
|
352
440
|
TSubscriptions,
|
|
353
441
|
TErrorShape
|
|
354
442
|
>;
|
|
443
|
+
|
|
355
444
|
public mutation<TPath extends string, TInput, TOutput>(
|
|
356
445
|
path: TPath,
|
|
357
|
-
procedure: CreateProcedureWithInput<TContext,
|
|
446
|
+
procedure: CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>,
|
|
358
447
|
): Router<
|
|
359
448
|
TInputContext,
|
|
360
449
|
TContext,
|
|
450
|
+
TMeta,
|
|
361
451
|
TQueries,
|
|
362
452
|
TMutations &
|
|
363
453
|
Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
|
|
@@ -365,12 +455,18 @@ export class Router<
|
|
|
365
455
|
TErrorShape
|
|
366
456
|
>;
|
|
367
457
|
|
|
368
|
-
public mutation<TPath extends string, TOutput>(
|
|
458
|
+
public mutation<TPath extends string, TOutput, TParsedOutput>(
|
|
369
459
|
path: TPath,
|
|
370
|
-
procedure: CreateProcedureWithoutInput<
|
|
460
|
+
procedure: CreateProcedureWithoutInput<
|
|
461
|
+
TContext,
|
|
462
|
+
TMeta,
|
|
463
|
+
TOutput,
|
|
464
|
+
TParsedOutput
|
|
465
|
+
>,
|
|
371
466
|
): Router<
|
|
372
467
|
TInputContext,
|
|
373
468
|
TContext,
|
|
469
|
+
TMeta,
|
|
374
470
|
TQueries,
|
|
375
471
|
TMutations &
|
|
376
472
|
Record<TPath, inferProcedureFromOptions<TInputContext, typeof procedure>>,
|
|
@@ -380,9 +476,9 @@ export class Router<
|
|
|
380
476
|
|
|
381
477
|
public mutation(
|
|
382
478
|
path: string,
|
|
383
|
-
procedure: CreateProcedureOptions<TContext, any, any, any>,
|
|
479
|
+
procedure: CreateProcedureOptions<TContext, TMeta, any, any, any, any>,
|
|
384
480
|
) {
|
|
385
|
-
const router = new Router<TContext, TContext, {}, any, {}, any>({
|
|
481
|
+
const router = new Router<TContext, TContext, TMeta, {}, any, {}, any>({
|
|
386
482
|
mutations: safeObject({
|
|
387
483
|
[path]: createProcedure(procedure),
|
|
388
484
|
}),
|
|
@@ -398,18 +494,24 @@ export class Router<
|
|
|
398
494
|
TPath extends string,
|
|
399
495
|
TInput,
|
|
400
496
|
TParsedInput,
|
|
401
|
-
TOutput extends
|
|
497
|
+
TOutput extends Observable<unknown, unknown>,
|
|
402
498
|
>(
|
|
403
499
|
path: TPath,
|
|
404
|
-
procedure:
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
500
|
+
procedure: Omit<
|
|
501
|
+
CreateProcedureWithInputOutputParser<
|
|
502
|
+
TContext,
|
|
503
|
+
TMeta,
|
|
504
|
+
TInput,
|
|
505
|
+
TParsedInput,
|
|
506
|
+
TOutput,
|
|
507
|
+
unknown
|
|
508
|
+
>,
|
|
509
|
+
'output'
|
|
409
510
|
>,
|
|
410
511
|
): Router<
|
|
411
512
|
TInputContext,
|
|
412
513
|
TContext,
|
|
514
|
+
TMeta,
|
|
413
515
|
TQueries,
|
|
414
516
|
TMutations,
|
|
415
517
|
TSubscriptions &
|
|
@@ -423,13 +525,17 @@ export class Router<
|
|
|
423
525
|
public subscription<
|
|
424
526
|
TPath extends string,
|
|
425
527
|
TInput,
|
|
426
|
-
TOutput extends
|
|
528
|
+
TOutput extends Observable<unknown, unknown>,
|
|
427
529
|
>(
|
|
428
530
|
path: TPath,
|
|
429
|
-
procedure:
|
|
531
|
+
procedure: Omit<
|
|
532
|
+
CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>,
|
|
533
|
+
'output'
|
|
534
|
+
>,
|
|
430
535
|
): Router<
|
|
431
536
|
TInputContext,
|
|
432
537
|
TContext,
|
|
538
|
+
TMeta,
|
|
433
539
|
TQueries,
|
|
434
540
|
TMutations,
|
|
435
541
|
TSubscriptions &
|
|
@@ -442,13 +548,17 @@ export class Router<
|
|
|
442
548
|
*/
|
|
443
549
|
public subscription<
|
|
444
550
|
TPath extends string,
|
|
445
|
-
TOutput extends
|
|
551
|
+
TOutput extends Observable<unknown, unknown>,
|
|
446
552
|
>(
|
|
447
553
|
path: TPath,
|
|
448
|
-
procedure:
|
|
554
|
+
procedure: Omit<
|
|
555
|
+
CreateProcedureWithoutInput<TContext, TMeta, TOutput, unknown>,
|
|
556
|
+
'output'
|
|
557
|
+
>,
|
|
449
558
|
): Router<
|
|
450
559
|
TInputContext,
|
|
451
560
|
TContext,
|
|
561
|
+
TMeta,
|
|
452
562
|
TQueries,
|
|
453
563
|
TMutations,
|
|
454
564
|
TSubscriptions &
|
|
@@ -458,9 +568,12 @@ export class Router<
|
|
|
458
568
|
|
|
459
569
|
public subscription(
|
|
460
570
|
path: string,
|
|
461
|
-
procedure:
|
|
571
|
+
procedure: Omit<
|
|
572
|
+
CreateProcedureOptions<TContext, TMeta, any, any, any, any>,
|
|
573
|
+
'output'
|
|
574
|
+
>,
|
|
462
575
|
) {
|
|
463
|
-
const router = new Router<TContext, TContext, {}, {}, any, any>({
|
|
576
|
+
const router = new Router<TContext, TContext, TMeta, {}, {}, any, any>({
|
|
464
577
|
subscriptions: safeObject({
|
|
465
578
|
[path]: createProcedure(procedure),
|
|
466
579
|
}),
|
|
@@ -473,11 +586,14 @@ export class Router<
|
|
|
473
586
|
* Merge router with other router
|
|
474
587
|
* @param router
|
|
475
588
|
*/
|
|
476
|
-
public merge<
|
|
589
|
+
public merge<
|
|
590
|
+
TChildRouter extends Router<TContext, any, TMeta, any, any, any, any>,
|
|
591
|
+
>(
|
|
477
592
|
router: TChildRouter,
|
|
478
593
|
): Router<
|
|
479
594
|
TInputContext,
|
|
480
595
|
inferRouterContext<TChildRouter>,
|
|
596
|
+
TMeta,
|
|
481
597
|
TQueries & TChildRouter['_def']['queries'],
|
|
482
598
|
TMutations & TChildRouter['_def']['mutations'],
|
|
483
599
|
TSubscriptions & TChildRouter['_def']['subscriptions'],
|
|
@@ -491,13 +607,14 @@ export class Router<
|
|
|
491
607
|
*/
|
|
492
608
|
public merge<
|
|
493
609
|
TPath extends string,
|
|
494
|
-
TChildRouter extends Router<TContext, any, any, any, any, any>,
|
|
610
|
+
TChildRouter extends Router<TContext, any, TMeta, any, any, any, any>,
|
|
495
611
|
>(
|
|
496
612
|
prefix: TPath,
|
|
497
613
|
router: TChildRouter,
|
|
498
614
|
): Router<
|
|
499
615
|
TInputContext,
|
|
500
616
|
inferRouterContext<TChildRouter>,
|
|
617
|
+
TMeta,
|
|
501
618
|
TQueries & Prefixer<TChildRouter['_def']['queries'], `${TPath}`>,
|
|
502
619
|
TMutations & Prefixer<TChildRouter['_def']['mutations'], `${TPath}`>,
|
|
503
620
|
TSubscriptions &
|
|
@@ -539,8 +656,7 @@ export class Router<
|
|
|
539
656
|
|
|
540
657
|
const mergeProcedures = (defs: ProcedureRecord) => {
|
|
541
658
|
const newDefs = safeObject() as typeof defs;
|
|
542
|
-
for (const key
|
|
543
|
-
const procedure = defs[key];
|
|
659
|
+
for (const [key, procedure] of Object.entries(defs)) {
|
|
544
660
|
const newProcedure = procedure.inheritMiddlewares(
|
|
545
661
|
this._def.middlewares,
|
|
546
662
|
);
|
|
@@ -550,7 +666,7 @@ export class Router<
|
|
|
550
666
|
return Router.prefixProcedures(newDefs, prefix);
|
|
551
667
|
};
|
|
552
668
|
|
|
553
|
-
return new Router<TInputContext, any, any, any, any, TErrorShape>({
|
|
669
|
+
return new Router<TInputContext, any, TMeta, any, any, any, TErrorShape>({
|
|
554
670
|
...this._def,
|
|
555
671
|
queries: safeObject(
|
|
556
672
|
this._def.queries,
|
|
@@ -577,7 +693,7 @@ export class Router<
|
|
|
577
693
|
const defTarget = PROCEDURE_DEFINITION_MAP[type];
|
|
578
694
|
const defs = this._def[defTarget];
|
|
579
695
|
const procedure = defs[path] as
|
|
580
|
-
| Procedure<TInputContext, TContext, any, any, any>
|
|
696
|
+
| Procedure<TInputContext, TContext, TMeta, any, any, any, any>
|
|
581
697
|
| undefined;
|
|
582
698
|
|
|
583
699
|
if (!procedure) {
|
|
@@ -628,10 +744,11 @@ export class Router<
|
|
|
628
744
|
* @link https://trpc.io/docs/middlewares
|
|
629
745
|
*/
|
|
630
746
|
public middleware<TNewContext>(
|
|
631
|
-
middleware: MiddlewareFunction<TContext, TNewContext>,
|
|
747
|
+
middleware: MiddlewareFunction<TContext, TNewContext, TMeta>,
|
|
632
748
|
): Router<
|
|
633
749
|
TInputContext,
|
|
634
750
|
TNewContext,
|
|
751
|
+
TMeta,
|
|
635
752
|
SwapContext<TQueries, TNewContext>,
|
|
636
753
|
SwapContext<TMutations, TNewContext>,
|
|
637
754
|
SwapContext<TSubscriptions, TNewContext>,
|
|
@@ -658,6 +775,7 @@ export class Router<
|
|
|
658
775
|
return new Router<
|
|
659
776
|
TInputContext,
|
|
660
777
|
TContext,
|
|
778
|
+
TMeta,
|
|
661
779
|
TQueries,
|
|
662
780
|
TMutations,
|
|
663
781
|
TSubscriptions,
|
|
@@ -712,6 +830,7 @@ export class Router<
|
|
|
712
830
|
return new Router<
|
|
713
831
|
TInputContext,
|
|
714
832
|
TContext,
|
|
833
|
+
TMeta,
|
|
715
834
|
TQueries,
|
|
716
835
|
TMutations,
|
|
717
836
|
TSubscriptions,
|
|
@@ -731,40 +850,34 @@ export class Router<
|
|
|
731
850
|
public flat(): Router<
|
|
732
851
|
TInputContext,
|
|
733
852
|
TContext,
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
853
|
+
TMeta,
|
|
854
|
+
FlatOverwrite<{}, TQueries>,
|
|
855
|
+
FlatOverwrite<{}, TMutations>,
|
|
856
|
+
FlatOverwrite<{}, TSubscriptions>,
|
|
737
857
|
TErrorShape
|
|
738
858
|
> {
|
|
739
859
|
return this as any;
|
|
740
860
|
}
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Interop mode for v9.x -> v10.x
|
|
864
|
+
*/
|
|
865
|
+
public interop(): MigrateRouter<
|
|
866
|
+
TInputContext,
|
|
867
|
+
TContext,
|
|
868
|
+
TMeta,
|
|
869
|
+
TQueries,
|
|
870
|
+
TMutations,
|
|
871
|
+
TSubscriptions,
|
|
872
|
+
TErrorShape
|
|
873
|
+
> {
|
|
874
|
+
return migrateRouter(this);
|
|
875
|
+
}
|
|
741
876
|
}
|
|
742
877
|
|
|
743
878
|
/**
|
|
744
|
-
* Subclass of `VNextRouter` with `TInputContext` and `TContext` set to the same type, for backcompat.
|
|
745
|
-
*
|
|
746
879
|
* @deprecated
|
|
747
880
|
*/
|
|
748
|
-
export
|
|
749
|
-
TContext,
|
|
750
|
-
TQueries extends ProcedureRecord<TContext, TContext>,
|
|
751
|
-
TMutations extends ProcedureRecord<TContext, TContext>,
|
|
752
|
-
TSubscriptions extends ProcedureRecord<
|
|
753
|
-
TContext,
|
|
754
|
-
TContext,
|
|
755
|
-
unknown,
|
|
756
|
-
Subscription<unknown>
|
|
757
|
-
>,
|
|
758
|
-
TErrorShape extends TRPCErrorShape<number>,
|
|
759
|
-
> extends Router<
|
|
760
|
-
TContext,
|
|
761
|
-
TContext,
|
|
762
|
-
TQueries,
|
|
763
|
-
TMutations,
|
|
764
|
-
TSubscriptions,
|
|
765
|
-
TErrorShape
|
|
766
|
-
> {}
|
|
767
|
-
|
|
768
|
-
export function router<TContext>() {
|
|
769
|
-
return new Router<TContext, TContext, {}, {}, {}, DefaultErrorShape>();
|
|
881
|
+
export function router<TContext, TMeta extends Record<string, any> = {}>() {
|
|
882
|
+
return new Router<TContext, TContext, TMeta, {}, {}, {}, DefaultErrorShape>();
|
|
770
883
|
}
|