@trpc/server 11.0.0-alpha-tmp-export-from-main.218 → 11.0.0-alpha-tmp-export-from-main-nuke-core.239
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@trpc/server/http.d.ts +7 -0
- package/dist/@trpc/server/http.d.ts.map +1 -0
- package/dist/@trpc/server/index.d.ts +69 -0
- package/dist/@trpc/server/index.d.ts.map +1 -0
- package/dist/@trpc/server/rpc.d.ts +3 -0
- package/dist/@trpc/server/rpc.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/index.d.ts +1 -2
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +6 -4
- package/dist/adapters/aws-lambda/index.mjs +4 -2
- package/dist/adapters/aws-lambda/utils.d.ts +2 -3
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/utils.js +5 -4
- package/dist/adapters/aws-lambda/utils.mjs +3 -2
- package/dist/adapters/express.d.ts +1 -2
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.js +6 -3
- package/dist/adapters/fastify/fastifyRequestHandler.mjs +4 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -2
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.js +0 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +0 -1
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -2
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.js +6 -4
- package/dist/adapters/fetch/fetchRequestHandler.mjs +4 -2
- package/dist/adapters/fetch/types.d.ts +2 -3
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/next.d.ts +1 -3
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +6 -4
- package/dist/adapters/next.mjs +4 -2
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +1 -1
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/json/getPostBody.js +4 -2
- package/dist/adapters/node-http/content-type/json/getPostBody.mjs +3 -1
- package/dist/adapters/node-http/content-type/json/index.js +4 -2
- package/dist/adapters/node-http/content-type/json/index.mjs +3 -1
- package/dist/adapters/node-http/internals/contentType.d.ts +2 -2
- package/dist/adapters/node-http/internals/contentType.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -2
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +6 -4
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +4 -2
- package/dist/adapters/node-http/types.d.ts +3 -4
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +1 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +1 -0
- package/dist/adapters/standalone.mjs +1 -0
- package/dist/adapters/ws.d.ts +3 -2
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +33 -26
- package/dist/adapters/ws.mjs +8 -1
- package/dist/bundle-analysis.json +757 -0
- package/dist/http.d.ts +1 -6
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +11 -21
- package/dist/http.mjs +6 -1
- package/dist/index.d.ts +1 -68
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -41
- package/dist/index.mjs +8 -1
- package/dist/observable/index.d.ts +5 -0
- package/dist/observable/index.d.ts.map +1 -0
- package/dist/observable/index.js +13 -0
- package/dist/observable/index.mjs +2 -0
- package/dist/observable/observable.d.ts +13 -0
- package/dist/observable/observable.d.ts.map +1 -0
- package/dist/observable/observable.js +126 -0
- package/dist/observable/observable.mjs +122 -0
- package/dist/observable/operators.d.ts +8 -0
- package/dist/observable/operators.d.ts.map +1 -0
- package/dist/observable/operators.js +103 -0
- package/dist/observable/operators.mjs +99 -0
- package/dist/observable/types.d.ts +26 -0
- package/dist/observable/types.d.ts.map +1 -0
- package/dist/rpc.d.ts +1 -2
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +6 -13
- package/dist/rpc.mjs +3 -1
- package/dist/shared.d.ts +1 -1
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +6 -9
- package/dist/shared.mjs +4 -1
- package/dist/unstable-core-do-not-import/TRPCInferrable.d.ts +6 -0
- package/dist/unstable-core-do-not-import/TRPCInferrable.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/createProxy.d.ts +19 -0
- package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/createProxy.js +52 -0
- package/dist/unstable-core-do-not-import/createProxy.mjs +49 -0
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts +13 -0
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/error/TRPCError.js +67 -0
- package/dist/unstable-core-do-not-import/error/TRPCError.mjs +63 -0
- package/dist/unstable-core-do-not-import/error/formatter.d.ts +33 -0
- package/dist/unstable-core-do-not-import/error/formatter.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/error/formatter.js +7 -0
- package/dist/unstable-core-do-not-import/error/formatter.mjs +5 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts +15 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.js +31 -0
- package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +29 -0
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts +24 -0
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.js +32 -0
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.mjs +30 -0
- package/dist/unstable-core-do-not-import/http/contentType.d.ts +29 -0
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/contentType.js +54 -0
- package/dist/unstable-core-do-not-import/http/contentType.mjs +52 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +5 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +51 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +48 -0
- package/dist/unstable-core-do-not-import/http/index.d.ts +7 -0
- package/dist/unstable-core-do-not-import/http/index.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts +51 -0
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.js +295 -0
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.mjs +293 -0
- package/dist/unstable-core-do-not-import/http/types.d.ts +96 -0
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/index.d.ts +37 -0
- package/dist/unstable-core-do-not-import/index.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/index.js +48 -0
- package/dist/unstable-core-do-not-import/index.mjs +16 -0
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +96 -0
- package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/initTRPC.js +95 -0
- package/dist/unstable-core-do-not-import/initTRPC.mjs +93 -0
- package/dist/unstable-core-do-not-import/middleware.d.ts +105 -0
- package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/middleware.js +95 -0
- package/dist/unstable-core-do-not-import/middleware.mjs +89 -0
- package/dist/unstable-core-do-not-import/parser.d.ts +30 -0
- package/dist/unstable-core-do-not-import/parser.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/parser.js +37 -0
- package/dist/unstable-core-do-not-import/parser.mjs +35 -0
- package/dist/unstable-core-do-not-import/procedure.d.ts +72 -0
- package/dist/unstable-core-do-not-import/procedure.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/procedure.js +9 -0
- package/dist/unstable-core-do-not-import/procedure.mjs +7 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +101 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.js +176 -0
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +173 -0
- package/dist/unstable-core-do-not-import/rootConfig.d.ts +75 -0
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rootConfig.js +8 -0
- package/dist/unstable-core-do-not-import/rootConfig.mjs +6 -0
- package/dist/unstable-core-do-not-import/router.d.ts +85 -0
- package/dist/unstable-core-do-not-import/router.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/router.js +156 -0
- package/dist/unstable-core-do-not-import/router.mjs +151 -0
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts +51 -0
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rpc/codes.js +38 -0
- package/dist/unstable-core-do-not-import/rpc/codes.mjs +35 -0
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +97 -0
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rpc/index.d.ts +5 -0
- package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts +5 -0
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.js +59 -0
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +57 -0
- package/dist/unstable-core-do-not-import/serialize.d.ts +62 -0
- package/dist/unstable-core-do-not-import/serialize.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/transformer.d.ts +107 -0
- package/dist/unstable-core-do-not-import/transformer.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/transformer.js +107 -0
- package/dist/unstable-core-do-not-import/transformer.mjs +102 -0
- package/dist/unstable-core-do-not-import/types.d.ts +98 -0
- package/dist/unstable-core-do-not-import/types.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/utils.d.ts +27 -0
- package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/utils.js +44 -0
- package/dist/unstable-core-do-not-import/utils.mjs +39 -0
- package/package.json +53 -125
- package/src/@trpc/server/http.ts +26 -0
- package/src/@trpc/server/index.ts +105 -0
- package/src/@trpc/server/rpc.ts +26 -0
- package/src/adapters/aws-lambda/index.ts +4 -5
- package/src/adapters/aws-lambda/utils.ts +3 -4
- package/src/adapters/express.ts +1 -3
- package/src/adapters/fastify/fastifyRequestHandler.ts +6 -4
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -2
- package/src/adapters/fetch/fetchRequestHandler.ts +6 -4
- package/src/adapters/fetch/types.ts +2 -3
- package/src/adapters/next.ts +2 -4
- package/src/adapters/node-http/content-type/form-data/index.ts +1 -1
- package/src/adapters/node-http/content-type/json/getPostBody.ts +2 -2
- package/src/adapters/node-http/content-type/json/index.ts +1 -1
- package/src/adapters/node-http/internals/contentType.ts +2 -2
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +6 -4
- package/src/adapters/node-http/types.ts +4 -5
- package/src/adapters/standalone.ts +2 -2
- package/src/adapters/ws.ts +14 -13
- package/src/http.ts +1 -26
- package/src/index.ts +1 -105
- package/src/observable/index.ts +10 -0
- package/src/observable/observable.ts +158 -0
- package/src/observable/operators.ts +119 -0
- package/src/observable/types.ts +76 -0
- package/src/rpc.ts +1 -26
- package/src/shared.ts +1 -1
- package/src/unstable-core-do-not-import/TRPCInferrable.ts +9 -0
- package/src/unstable-core-do-not-import/createProxy.ts +59 -0
- package/src/unstable-core-do-not-import/error/TRPCError.ts +82 -0
- package/src/unstable-core-do-not-import/error/formatter.ts +51 -0
- package/src/unstable-core-do-not-import/error/getErrorShape.ts +36 -0
- package/src/unstable-core-do-not-import/http/batchStreamFormatter.ts +29 -0
- package/src/unstable-core-do-not-import/http/contentType.ts +99 -0
- package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +57 -0
- package/src/unstable-core-do-not-import/http/index.ts +23 -0
- package/src/unstable-core-do-not-import/http/resolveHTTPResponse.ts +458 -0
- package/src/unstable-core-do-not-import/http/types.ts +111 -0
- package/src/unstable-core-do-not-import/index.ts +110 -0
- package/src/unstable-core-do-not-import/initTRPC.ts +206 -0
- package/src/unstable-core-do-not-import/middleware.ts +233 -0
- package/src/unstable-core-do-not-import/parser.ts +94 -0
- package/src/unstable-core-do-not-import/procedure.ts +108 -0
- package/src/unstable-core-do-not-import/procedureBuilder.ts +458 -0
- package/src/unstable-core-do-not-import/rootConfig.ts +90 -0
- package/src/unstable-core-do-not-import/router.ts +370 -0
- package/src/unstable-core-do-not-import/rpc/codes.ts +44 -0
- package/src/unstable-core-do-not-import/rpc/envelopes.ts +136 -0
- package/src/unstable-core-do-not-import/rpc/index.ts +21 -0
- package/src/unstable-core-do-not-import/rpc/parseTRPCMessage.ts +85 -0
- package/src/unstable-core-do-not-import/serialize.ts +122 -0
- package/src/unstable-core-do-not-import/transformer.ts +202 -0
- package/src/unstable-core-do-not-import/types.ts +151 -0
- package/src/unstable-core-do-not-import/utils.ts +59 -0
- package/unstable-core-do-not-import/index.d.ts +1 -0
- package/unstable-core-do-not-import/index.js +1 -0
- package/dist/@trpc-core-unstable-do-not-import-this-please.d.ts +0 -10
- package/dist/@trpc-core-unstable-do-not-import-this-please.d.ts.map +0 -1
- package/dist/@trpc-server/http.d.ts +0 -2
- package/dist/@trpc-server/http.d.ts.map +0 -1
- package/dist/observable.d.ts +0 -3
- package/dist/observable.d.ts.map +0 -1
- package/dist/observable.js +0 -30
- package/dist/observable.mjs +0 -1
- package/src/@trpc-core-unstable-do-not-import-this-please.ts +0 -146
- package/src/@trpc-server/http.ts +0 -2
- package/src/observable.ts +0 -16
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { TRPCError } from './error/TRPCError.mjs';
|
|
2
|
+
import { isObject } from './utils.mjs';
|
|
3
|
+
|
|
4
|
+
/** @internal */ const middlewareMarker = 'middlewareMarker';
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/ function createMiddlewareFactory() {
|
|
8
|
+
function createMiddlewareInner(middlewares) {
|
|
9
|
+
return {
|
|
10
|
+
_middlewares: middlewares,
|
|
11
|
+
unstable_pipe (middlewareBuilderOrFn) {
|
|
12
|
+
const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
|
|
13
|
+
middlewareBuilderOrFn
|
|
14
|
+
];
|
|
15
|
+
return createMiddlewareInner([
|
|
16
|
+
...middlewares,
|
|
17
|
+
...pipedMiddleware
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function createMiddleware(fn) {
|
|
23
|
+
return createMiddlewareInner([
|
|
24
|
+
fn
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
return createMiddleware;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create a standalone middleware
|
|
31
|
+
* @link https://trpc.io/docs/v11/server/middlewares#experimental-standalone-middlewares
|
|
32
|
+
*/ const experimental_standaloneMiddleware = ()=>({
|
|
33
|
+
create: createMiddlewareFactory()
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
* Please note, `trpc-openapi` uses this function.
|
|
38
|
+
*/ function createInputMiddleware(parse) {
|
|
39
|
+
const inputMiddleware = async function inputValidatorMiddleware(opts) {
|
|
40
|
+
let parsedInput;
|
|
41
|
+
const rawInput = await opts.getRawInput();
|
|
42
|
+
try {
|
|
43
|
+
parsedInput = await parse(rawInput);
|
|
44
|
+
} catch (cause) {
|
|
45
|
+
throw new TRPCError({
|
|
46
|
+
code: 'BAD_REQUEST',
|
|
47
|
+
cause
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Multiple input parsers
|
|
51
|
+
const combinedInput = isObject(opts.input) && isObject(parsedInput) ? {
|
|
52
|
+
...opts.input,
|
|
53
|
+
...parsedInput
|
|
54
|
+
} : parsedInput;
|
|
55
|
+
return opts.next({
|
|
56
|
+
input: combinedInput
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
inputMiddleware._type = 'input';
|
|
60
|
+
return inputMiddleware;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @internal
|
|
64
|
+
*/ function createOutputMiddleware(parse) {
|
|
65
|
+
const outputMiddleware = async function outputValidatorMiddleware({ next }) {
|
|
66
|
+
const result = await next();
|
|
67
|
+
if (!result.ok) {
|
|
68
|
+
// pass through failures without validating
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const data = await parse(result.data);
|
|
73
|
+
return {
|
|
74
|
+
...result,
|
|
75
|
+
data
|
|
76
|
+
};
|
|
77
|
+
} catch (cause) {
|
|
78
|
+
throw new TRPCError({
|
|
79
|
+
message: 'Output validation failed',
|
|
80
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
81
|
+
cause
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
outputMiddleware._type = 'output';
|
|
86
|
+
return outputMiddleware;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export { createInputMiddleware, createMiddlewareFactory, createOutputMiddleware, experimental_standaloneMiddleware, middlewareMarker };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type ParserZodEsque<TInput, TParsedInput> = {
|
|
2
|
+
_input: TInput;
|
|
3
|
+
_output: TParsedInput;
|
|
4
|
+
};
|
|
5
|
+
export type ParserMyZodEsque<TInput> = {
|
|
6
|
+
parse: (input: any) => TInput;
|
|
7
|
+
};
|
|
8
|
+
export type ParserSuperstructEsque<TInput> = {
|
|
9
|
+
create: (input: unknown) => TInput;
|
|
10
|
+
};
|
|
11
|
+
export type ParserCustomValidatorEsque<TInput> = (input: unknown) => Promise<TInput> | TInput;
|
|
12
|
+
export type ParserYupEsque<TInput> = {
|
|
13
|
+
validateSync: (input: unknown) => TInput;
|
|
14
|
+
};
|
|
15
|
+
export type ParserScaleEsque<TInput> = {
|
|
16
|
+
assert(value: unknown): asserts value is TInput;
|
|
17
|
+
};
|
|
18
|
+
export type ParserWithoutInput<TInput> = ParserCustomValidatorEsque<TInput> | ParserMyZodEsque<TInput> | ParserScaleEsque<TInput> | ParserSuperstructEsque<TInput> | ParserYupEsque<TInput>;
|
|
19
|
+
export type ParserWithInputOutput<TInput, TParsedInput> = ParserZodEsque<TInput, TParsedInput>;
|
|
20
|
+
export type Parser = ParserWithInputOutput<any, any> | ParserWithoutInput<any>;
|
|
21
|
+
export type inferParser<TParser extends Parser> = TParser extends ParserWithInputOutput<infer $TIn, infer $TOut> ? {
|
|
22
|
+
in: $TIn;
|
|
23
|
+
out: $TOut;
|
|
24
|
+
} : TParser extends ParserWithoutInput<infer $InOut> ? {
|
|
25
|
+
in: $InOut;
|
|
26
|
+
out: $InOut;
|
|
27
|
+
} : never;
|
|
28
|
+
export type ParseFn<TType> = (value: unknown) => Promise<TType> | TType;
|
|
29
|
+
export declare function getParseFn<TType>(procedureParser: Parser): ParseFn<TType>;
|
|
30
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/parser.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,CAAC,MAAM,EAAE,YAAY,IAAI;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI;IAC3C,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,MAAM,IAAI,CAC/C,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI;IACnC,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI;IACrC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,MAAM,IACjC,0BAA0B,CAAC,MAAM,CAAC,GAClC,gBAAgB,CAAC,MAAM,CAAC,GACxB,gBAAgB,CAAC,MAAM,CAAC,GACxB,sBAAsB,CAAC,MAAM,CAAC,GAC9B,cAAc,CAAC,MAAM,CAAC,CAAC;AAE3B,MAAM,MAAM,qBAAqB,CAAC,MAAM,EAAE,YAAY,IAAI,cAAc,CACtE,MAAM,EACN,YAAY,CACb,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAE/E,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,IAC5C,OAAO,SAAS,qBAAqB,CAAC,MAAM,IAAI,EAAE,MAAM,KAAK,CAAC,GAC1D;IACE,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE,KAAK,CAAC;CACZ,GACD,OAAO,SAAS,kBAAkB,CAAC,MAAM,MAAM,CAAC,GAChD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,GACD,KAAK,CAAC;AAEZ,MAAM,MAAM,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAExE,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAsCzE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// zod / @decs/typeschema
|
|
4
|
+
function getParseFn(procedureParser) {
|
|
5
|
+
const parser = procedureParser;
|
|
6
|
+
if (typeof parser === 'function') {
|
|
7
|
+
// ParserCustomValidatorEsque
|
|
8
|
+
return parser;
|
|
9
|
+
}
|
|
10
|
+
if (typeof parser.parseAsync === 'function') {
|
|
11
|
+
// ParserZodEsque
|
|
12
|
+
return parser.parseAsync.bind(parser);
|
|
13
|
+
}
|
|
14
|
+
if (typeof parser.parse === 'function') {
|
|
15
|
+
// ParserZodEsque
|
|
16
|
+
// ParserValibotEsque (<= v0.12.X)
|
|
17
|
+
return parser.parse.bind(parser);
|
|
18
|
+
}
|
|
19
|
+
if (typeof parser.validateSync === 'function') {
|
|
20
|
+
// ParserYupEsque
|
|
21
|
+
return parser.validateSync.bind(parser);
|
|
22
|
+
}
|
|
23
|
+
if (typeof parser.create === 'function') {
|
|
24
|
+
// ParserSuperstructEsque
|
|
25
|
+
return parser.create.bind(parser);
|
|
26
|
+
}
|
|
27
|
+
if (typeof parser.assert === 'function') {
|
|
28
|
+
// ParserScaleEsque
|
|
29
|
+
return (value)=>{
|
|
30
|
+
parser.assert(value);
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
throw new Error('Could not find a validator fn');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.getParseFn = getParseFn;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// zod / @decs/typeschema
|
|
2
|
+
function getParseFn(procedureParser) {
|
|
3
|
+
const parser = procedureParser;
|
|
4
|
+
if (typeof parser === 'function') {
|
|
5
|
+
// ParserCustomValidatorEsque
|
|
6
|
+
return parser;
|
|
7
|
+
}
|
|
8
|
+
if (typeof parser.parseAsync === 'function') {
|
|
9
|
+
// ParserZodEsque
|
|
10
|
+
return parser.parseAsync.bind(parser);
|
|
11
|
+
}
|
|
12
|
+
if (typeof parser.parse === 'function') {
|
|
13
|
+
// ParserZodEsque
|
|
14
|
+
// ParserValibotEsque (<= v0.12.X)
|
|
15
|
+
return parser.parse.bind(parser);
|
|
16
|
+
}
|
|
17
|
+
if (typeof parser.validateSync === 'function') {
|
|
18
|
+
// ParserYupEsque
|
|
19
|
+
return parser.validateSync.bind(parser);
|
|
20
|
+
}
|
|
21
|
+
if (typeof parser.create === 'function') {
|
|
22
|
+
// ParserSuperstructEsque
|
|
23
|
+
return parser.create.bind(parser);
|
|
24
|
+
}
|
|
25
|
+
if (typeof parser.assert === 'function') {
|
|
26
|
+
// ParserScaleEsque
|
|
27
|
+
return (value)=>{
|
|
28
|
+
parser.assert(value);
|
|
29
|
+
return value;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
throw new Error('Could not find a validator fn');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { getParseFn };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { inferObservableValue } from '../observable';
|
|
2
|
+
import type { ProcedureCallOptions } from './procedureBuilder';
|
|
3
|
+
import type { Serialize } from './serialize';
|
|
4
|
+
import type { DefaultDataTransformer } from './transformer';
|
|
5
|
+
import type { inferConfig, TRPCInferrable } from './TRPCInferrable';
|
|
6
|
+
export declare const procedureTypes: readonly ["query", "mutation", "subscription"];
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export type ProcedureType = (typeof procedureTypes)[number];
|
|
11
|
+
type ClientContext = Record<string, unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export interface ProcedureOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Client-side context
|
|
18
|
+
*/
|
|
19
|
+
context?: ClientContext;
|
|
20
|
+
signal?: AbortSignal;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export type ProcedureArgs<TParams extends AnyProcedure['_def']> = void extends TParams['_input_in'] ? [input?: undefined | void, opts?: ProcedureOptions] : undefined extends TParams['_input_in'] ? [input?: TParams['_input_in'] | void, opts?: ProcedureOptions] : [input: TParams['_input_in'], opts?: ProcedureOptions];
|
|
26
|
+
interface BuiltProcedureDef {
|
|
27
|
+
input: unknown;
|
|
28
|
+
output: unknown;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export interface Procedure<TType extends ProcedureType, TDef extends BuiltProcedureDef> {
|
|
35
|
+
_def: {
|
|
36
|
+
_input_in: TDef['input'];
|
|
37
|
+
_output_out: TDef['output'];
|
|
38
|
+
procedure: true;
|
|
39
|
+
type: TType;
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
* Meta is not inferrable on individual procedures, only on the router
|
|
43
|
+
*/
|
|
44
|
+
meta: unknown;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
(opts: ProcedureCallOptions): Promise<unknown>;
|
|
50
|
+
}
|
|
51
|
+
export interface QueryProcedure<TDef extends BuiltProcedureDef> extends Procedure<'query', TDef> {
|
|
52
|
+
}
|
|
53
|
+
export interface MutationProcedure<TDef extends BuiltProcedureDef> extends Procedure<'mutation', TDef> {
|
|
54
|
+
}
|
|
55
|
+
export interface SubscriptionProcedure<TDef extends BuiltProcedureDef> extends Procedure<'subscription', TDef> {
|
|
56
|
+
}
|
|
57
|
+
export type AnyQueryProcedure = QueryProcedure<any>;
|
|
58
|
+
export type AnyMutationProcedure = MutationProcedure<any>;
|
|
59
|
+
export type AnySubscriptionProcedure = SubscriptionProcedure<any>;
|
|
60
|
+
export type AnyProcedure = Procedure<ProcedureType, any>;
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
export type inferTransformedProcedureOutput<TInferrable extends TRPCInferrable, TProcedure extends AnyProcedure> = inferConfig<TInferrable>['transformer'] extends DefaultDataTransformer ? Serialize<TProcedure['_def']['_output_out']> : TProcedure['_def']['_output_out'];
|
|
65
|
+
/** @internal */
|
|
66
|
+
export type inferTransformedSubscriptionOutput<TInferrable extends TRPCInferrable, TProcedure extends AnyProcedure> = inferConfig<TInferrable>['transformer'] extends DefaultDataTransformer ? Serialize<inferObservableValue<TProcedure['_def']['_output_out']>> : inferObservableValue<TProcedure['_def']['_output_out']>;
|
|
67
|
+
export type inferHandlerInput<TProcedure extends AnyProcedure> = ProcedureArgs<inferProcedureParams<TProcedure>>;
|
|
68
|
+
export type inferProcedureInput<TProcedure extends AnyProcedure> = inferProcedureParams<TProcedure>['_input_in'];
|
|
69
|
+
export type inferProcedureParams<TProcedure> = TProcedure extends AnyProcedure ? TProcedure['_def'] : never;
|
|
70
|
+
export type inferProcedureOutput<TProcedure> = inferProcedureParams<TProcedure>['_output_out'];
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=procedure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { AnyMiddlewareFunction, MiddlewareBuilder, MiddlewareFunction } from './middleware';
|
|
2
|
+
import type { inferParser, Parser } from './parser';
|
|
3
|
+
import type { MutationProcedure, ProcedureType, QueryProcedure, SubscriptionProcedure } from './procedure';
|
|
4
|
+
import type { GetRawInputFn, MaybePromise, Overwrite, Simplify } from './types';
|
|
5
|
+
type IntersectIfDefined<TType, TWith> = TType extends UnsetMarker ? TWith : Simplify<TType & TWith>;
|
|
6
|
+
type ErrorMessage<TMessage extends string> = TMessage;
|
|
7
|
+
/** @internal */
|
|
8
|
+
export declare const unsetMarker: unique symbol;
|
|
9
|
+
type UnsetMarker = typeof unsetMarker;
|
|
10
|
+
type DefaultValue<TValue, TFallback> = TValue extends UnsetMarker ? TFallback : TValue;
|
|
11
|
+
type ProcedureBuilderDef<TMeta> = {
|
|
12
|
+
procedure: true;
|
|
13
|
+
inputs: Parser[];
|
|
14
|
+
output?: Parser;
|
|
15
|
+
meta?: TMeta;
|
|
16
|
+
resolver?: ProcedureBuilderResolver;
|
|
17
|
+
middlewares: AnyMiddlewareFunction[];
|
|
18
|
+
mutation?: boolean;
|
|
19
|
+
query?: boolean;
|
|
20
|
+
subscription?: boolean;
|
|
21
|
+
};
|
|
22
|
+
type AnyProcedureBuilderDef = ProcedureBuilderDef<any>;
|
|
23
|
+
/**
|
|
24
|
+
* Procedure resolver options
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
interface ResolverOptions<TContext, _TMeta, TContextOverridesIn, TInputOut> {
|
|
28
|
+
ctx: Simplify<Overwrite<TContext, TContextOverridesIn>>;
|
|
29
|
+
input: TInputOut extends UnsetMarker ? undefined : TInputOut;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A procedure resolver
|
|
33
|
+
*/
|
|
34
|
+
type ProcedureResolver<TContext, _TMeta, TContextOverrides, TInputOut, TOutputIn, TOutputOut> = (opts: {
|
|
35
|
+
ctx: Simplify<Overwrite<TContext, TContextOverrides>>;
|
|
36
|
+
input: TInputOut extends UnsetMarker ? undefined : TInputOut;
|
|
37
|
+
}) => MaybePromise<DefaultValue<TOutputIn, TOutputOut>>;
|
|
38
|
+
export interface ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut> {
|
|
39
|
+
/**
|
|
40
|
+
* Add an input parser to the procedure.
|
|
41
|
+
* @link https://trpc.io/docs/v11/server/validators
|
|
42
|
+
*/
|
|
43
|
+
input<$Parser extends Parser>(schema: TInputOut extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined ? TInputOut extends Record<string, unknown> | undefined ? undefined extends inferParser<$Parser>['out'] ? undefined extends TInputOut ? $Parser : ErrorMessage<'Cannot chain an optional parser to a required parser'> : $Parser : ErrorMessage<'All input parsers did not resolve to an object'> : ErrorMessage<'All input parsers did not resolve to an object'>): ProcedureBuilder<TContext, TMeta, TContextOverrides, IntersectIfDefined<TInputIn, inferParser<$Parser>['in']>, IntersectIfDefined<TInputOut, inferParser<$Parser>['out']>, TOutputIn, TOutputOut>;
|
|
44
|
+
/**
|
|
45
|
+
* Add an output parser to the procedure.
|
|
46
|
+
* @link https://trpc.io/docs/v11/server/validators
|
|
47
|
+
*/
|
|
48
|
+
output<$Parser extends Parser>(schema: $Parser): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, IntersectIfDefined<TOutputIn, inferParser<$Parser>['in']>, IntersectIfDefined<TOutputOut, inferParser<$Parser>['out']>>;
|
|
49
|
+
/**
|
|
50
|
+
* Add a meta data to the procedure.
|
|
51
|
+
* @link https://trpc.io/docs/v11/server/metadata
|
|
52
|
+
*/
|
|
53
|
+
meta(meta: TMeta): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut>;
|
|
54
|
+
/**
|
|
55
|
+
* Add a middleware to the procedure.
|
|
56
|
+
* @link https://trpc.io/docs/v11/server/middlewares
|
|
57
|
+
*/
|
|
58
|
+
use<$ContextOverridesOut>(fn: MiddlewareBuilder<Overwrite<TContext, TContextOverrides>, TMeta, $ContextOverridesOut, TInputIn> | MiddlewareFunction<TContext, TMeta, TContextOverrides, $ContextOverridesOut, TInputIn>): ProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverridesOut>, TInputIn, TInputOut, TOutputIn, TOutputOut>;
|
|
59
|
+
/**
|
|
60
|
+
* Query procedure
|
|
61
|
+
* @link https://trpc.io/docs/v11/concepts#vocabulary
|
|
62
|
+
*/
|
|
63
|
+
query<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): QueryProcedure<{
|
|
64
|
+
input: DefaultValue<TInputIn, void>;
|
|
65
|
+
output: DefaultValue<TOutputOut, $Output>;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Mutation procedure
|
|
69
|
+
* @link https://trpc.io/docs/v11/concepts#vocabulary
|
|
70
|
+
*/
|
|
71
|
+
mutation<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): MutationProcedure<{
|
|
72
|
+
input: DefaultValue<TInputIn, void>;
|
|
73
|
+
output: DefaultValue<TOutputOut, $Output>;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Subscription procedure
|
|
77
|
+
* @link https://trpc.io/docs/v11/concepts#vocabulary
|
|
78
|
+
*/
|
|
79
|
+
subscription<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): SubscriptionProcedure<{
|
|
80
|
+
input: DefaultValue<TInputIn, void>;
|
|
81
|
+
output: DefaultValue<TOutputOut, $Output>;
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
_def: ProcedureBuilderDef<TMeta>;
|
|
87
|
+
}
|
|
88
|
+
type ProcedureBuilderResolver = (opts: ResolverOptions<any, any, any, any>) => Promise<unknown>;
|
|
89
|
+
export declare function createBuilder<TContext, TMeta>(initDef?: Partial<AnyProcedureBuilderDef>): ProcedureBuilder<TContext, TMeta, object, UnsetMarker, UnsetMarker, UnsetMarker, UnsetMarker>;
|
|
90
|
+
/**
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
export interface ProcedureCallOptions {
|
|
94
|
+
ctx: unknown;
|
|
95
|
+
getRawInput: GetRawInputFn;
|
|
96
|
+
input?: unknown;
|
|
97
|
+
path: string;
|
|
98
|
+
type: ProcedureType;
|
|
99
|
+
}
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=procedureBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedureBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var TRPCError = require('./error/TRPCError.js');
|
|
4
|
+
var middleware = require('./middleware.js');
|
|
5
|
+
var parser = require('./parser.js');
|
|
6
|
+
var utils = require('./utils.js');
|
|
7
|
+
|
|
8
|
+
/** @internal */ const unsetMarker = Symbol('unsetMarker');
|
|
9
|
+
function createNewBuilder(def1, def2) {
|
|
10
|
+
const { middlewares =[] , inputs , meta , ...rest } = def2;
|
|
11
|
+
// TODO: maybe have a fn here to warn about calls
|
|
12
|
+
return createBuilder({
|
|
13
|
+
...utils.mergeWithoutOverrides(def1, rest),
|
|
14
|
+
inputs: [
|
|
15
|
+
...def1.inputs,
|
|
16
|
+
...inputs ?? []
|
|
17
|
+
],
|
|
18
|
+
middlewares: [
|
|
19
|
+
...def1.middlewares,
|
|
20
|
+
...middlewares
|
|
21
|
+
],
|
|
22
|
+
meta: def1.meta && meta ? {
|
|
23
|
+
...def1.meta,
|
|
24
|
+
...meta
|
|
25
|
+
} : meta ?? def1.meta
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function createBuilder(initDef = {}) {
|
|
29
|
+
const _def = {
|
|
30
|
+
procedure: true,
|
|
31
|
+
inputs: [],
|
|
32
|
+
middlewares: [],
|
|
33
|
+
...initDef
|
|
34
|
+
};
|
|
35
|
+
const builder = {
|
|
36
|
+
_def,
|
|
37
|
+
input (input) {
|
|
38
|
+
const parser$1 = parser.getParseFn(input);
|
|
39
|
+
return createNewBuilder(_def, {
|
|
40
|
+
inputs: [
|
|
41
|
+
input
|
|
42
|
+
],
|
|
43
|
+
middlewares: [
|
|
44
|
+
middleware.createInputMiddleware(parser$1)
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
output (output) {
|
|
49
|
+
const parser$1 = parser.getParseFn(output);
|
|
50
|
+
return createNewBuilder(_def, {
|
|
51
|
+
output,
|
|
52
|
+
middlewares: [
|
|
53
|
+
middleware.createOutputMiddleware(parser$1)
|
|
54
|
+
]
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
meta (meta) {
|
|
58
|
+
return createNewBuilder(_def, {
|
|
59
|
+
meta
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
use (middlewareBuilderOrFn) {
|
|
63
|
+
// Distinguish between a middleware builder and a middleware function
|
|
64
|
+
const middlewares = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
|
|
65
|
+
middlewareBuilderOrFn
|
|
66
|
+
];
|
|
67
|
+
return createNewBuilder(_def, {
|
|
68
|
+
middlewares: middlewares
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
query (resolver) {
|
|
72
|
+
return createResolver({
|
|
73
|
+
..._def,
|
|
74
|
+
type: 'query'
|
|
75
|
+
}, resolver);
|
|
76
|
+
},
|
|
77
|
+
mutation (resolver) {
|
|
78
|
+
return createResolver({
|
|
79
|
+
..._def,
|
|
80
|
+
type: 'mutation'
|
|
81
|
+
}, resolver);
|
|
82
|
+
},
|
|
83
|
+
subscription (resolver) {
|
|
84
|
+
return createResolver({
|
|
85
|
+
..._def,
|
|
86
|
+
type: 'subscription'
|
|
87
|
+
}, resolver);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return builder;
|
|
91
|
+
}
|
|
92
|
+
function createResolver(_def, resolver) {
|
|
93
|
+
const finalBuilder = createNewBuilder(_def, {
|
|
94
|
+
resolver,
|
|
95
|
+
middlewares: [
|
|
96
|
+
async function resolveMiddleware(opts) {
|
|
97
|
+
const data = await resolver(opts);
|
|
98
|
+
return {
|
|
99
|
+
marker: middleware.middlewareMarker,
|
|
100
|
+
ok: true,
|
|
101
|
+
data,
|
|
102
|
+
ctx: opts.ctx
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
});
|
|
107
|
+
return createProcedureCaller(finalBuilder._def);
|
|
108
|
+
}
|
|
109
|
+
const codeblock = `
|
|
110
|
+
This is a client-only function.
|
|
111
|
+
If you want to call this function on the server, see https://trpc.io/docs/v11/server/server-side-calls
|
|
112
|
+
`.trim();
|
|
113
|
+
function createProcedureCaller(_def) {
|
|
114
|
+
async function procedure(opts) {
|
|
115
|
+
// is direct server-side call
|
|
116
|
+
if (!opts || !('getRawInput' in opts)) {
|
|
117
|
+
throw new Error(codeblock);
|
|
118
|
+
}
|
|
119
|
+
// run the middlewares recursively with the resolver as the last one
|
|
120
|
+
async function callRecursive(callOpts = {
|
|
121
|
+
index: 0,
|
|
122
|
+
ctx: opts.ctx
|
|
123
|
+
}) {
|
|
124
|
+
try {
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
126
|
+
const middleware = _def.middlewares[callOpts.index];
|
|
127
|
+
const result = await middleware({
|
|
128
|
+
ctx: callOpts.ctx,
|
|
129
|
+
type: opts.type,
|
|
130
|
+
path: opts.path,
|
|
131
|
+
getRawInput: callOpts.getRawInput ?? opts.getRawInput,
|
|
132
|
+
meta: _def.meta,
|
|
133
|
+
input: callOpts.input,
|
|
134
|
+
next (_nextOpts) {
|
|
135
|
+
const nextOpts = _nextOpts;
|
|
136
|
+
return callRecursive({
|
|
137
|
+
index: callOpts.index + 1,
|
|
138
|
+
ctx: nextOpts && 'ctx' in nextOpts ? {
|
|
139
|
+
...callOpts.ctx,
|
|
140
|
+
...nextOpts.ctx
|
|
141
|
+
} : callOpts.ctx,
|
|
142
|
+
input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input,
|
|
143
|
+
getRawInput: nextOpts && 'getRawInput' in nextOpts ? nextOpts.getRawInput : callOpts.getRawInput
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
return result;
|
|
148
|
+
} catch (cause) {
|
|
149
|
+
return {
|
|
150
|
+
ok: false,
|
|
151
|
+
error: TRPCError.getTRPCErrorFromUnknown(cause),
|
|
152
|
+
marker: middleware.middlewareMarker
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// there's always at least one "next" since we wrap this.resolver in a middleware
|
|
157
|
+
const result = await callRecursive();
|
|
158
|
+
if (!result) {
|
|
159
|
+
throw new TRPCError.TRPCError({
|
|
160
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
161
|
+
message: 'No result from middlewares - did you forget to `return next()`?'
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
if (!result.ok) {
|
|
165
|
+
// re-throw original error
|
|
166
|
+
throw result.error;
|
|
167
|
+
}
|
|
168
|
+
return result.data;
|
|
169
|
+
}
|
|
170
|
+
procedure._def = _def;
|
|
171
|
+
// FIXME typecast shouldn't be needed - fixittt
|
|
172
|
+
return procedure;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
exports.createBuilder = createBuilder;
|
|
176
|
+
exports.unsetMarker = unsetMarker;
|