@trpc/server 11.0.0-next-beta.216 → 11.0.0-next-beta.221
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.d.ts → @trpc/server/index.d.ts} +4 -4
- 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 -5
- package/dist/adapters/aws-lambda/index.mjs +4 -3
- 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 +4 -2
- 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/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 -3
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +30 -25
- package/dist/adapters/ws.mjs +8 -3
- package/dist/bundle-analysis.json +419 -78
- package/dist/http.d.ts +1 -1
- package/dist/http.js +11 -7
- package/dist/http.mjs +6 -1
- package/dist/index.d.ts +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 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +6 -7
- package/dist/rpc.mjs +3 -1
- package/dist/shared.d.ts +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 +11 -8
- package/src/@trpc/server/http.ts +26 -0
- package/src/{@trpc-server.ts → @trpc/server/index.ts} +3 -3
- 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 +6 -3
- 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 +15 -14
- package/src/http.ts +1 -1
- package/src/index.ts +1 -1
- 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 -2
- 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 +237 -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 -9
- 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/@trpc-server.d.ts.map +0 -1
- package/dist/observable.d.ts +0 -2
- package/dist/observable.d.ts.map +0 -1
- package/dist/observable.js +0 -12
- package/dist/observable.mjs +0 -1
- package/src/@trpc-core-unstable-do-not-import-this-please.ts +0 -9
- package/src/@trpc-server/http.ts +0 -2
- package/src/observable.ts +0 -1
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { getErrorShape } from '../error/getErrorShape.mjs';
|
|
2
|
+
import { TRPCError, getTRPCErrorFromUnknown } from '../error/TRPCError.mjs';
|
|
3
|
+
import { callProcedure } from '../router.mjs';
|
|
4
|
+
import { transformTRPCResponse } from '../transformer.mjs';
|
|
5
|
+
import { getJsonContentTypeInputs } from './contentType.mjs';
|
|
6
|
+
import { getHTTPStatusCode } from './getHTTPStatusCode.mjs';
|
|
7
|
+
|
|
8
|
+
const HTTP_METHOD_PROCEDURE_TYPE_MAP = {
|
|
9
|
+
GET: 'query',
|
|
10
|
+
POST: 'mutation'
|
|
11
|
+
};
|
|
12
|
+
const fallbackContentTypeHandler = {
|
|
13
|
+
getInputs: getJsonContentTypeInputs
|
|
14
|
+
};
|
|
15
|
+
function initResponse(initOpts) {
|
|
16
|
+
const { ctx , paths , type , responseMeta , untransformedJSON , errors =[] , } = initOpts;
|
|
17
|
+
let status = untransformedJSON ? getHTTPStatusCode(untransformedJSON) : 200;
|
|
18
|
+
const headers = {
|
|
19
|
+
'Content-Type': 'application/json'
|
|
20
|
+
};
|
|
21
|
+
const eagerGeneration = !untransformedJSON;
|
|
22
|
+
const data = eagerGeneration ? [] : Array.isArray(untransformedJSON) ? untransformedJSON : [
|
|
23
|
+
untransformedJSON
|
|
24
|
+
];
|
|
25
|
+
const meta = responseMeta?.({
|
|
26
|
+
ctx,
|
|
27
|
+
paths,
|
|
28
|
+
type,
|
|
29
|
+
data,
|
|
30
|
+
errors,
|
|
31
|
+
eagerGeneration
|
|
32
|
+
}) ?? {};
|
|
33
|
+
for (const [key, value] of Object.entries(meta.headers ?? {})){
|
|
34
|
+
headers[key] = value;
|
|
35
|
+
}
|
|
36
|
+
if (meta.status) {
|
|
37
|
+
status = meta.status;
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
status,
|
|
41
|
+
headers
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async function inputToProcedureCall(procedureOpts) {
|
|
45
|
+
const { opts , ctx , type , input , path } = procedureOpts;
|
|
46
|
+
try {
|
|
47
|
+
const data = await callProcedure({
|
|
48
|
+
procedures: opts.router._def.procedures,
|
|
49
|
+
path,
|
|
50
|
+
getRawInput: async ()=>input,
|
|
51
|
+
ctx,
|
|
52
|
+
type
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
result: {
|
|
56
|
+
data
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
} catch (cause) {
|
|
60
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
61
|
+
opts.onError?.({
|
|
62
|
+
error,
|
|
63
|
+
path,
|
|
64
|
+
input,
|
|
65
|
+
ctx,
|
|
66
|
+
type: type,
|
|
67
|
+
req: opts.req
|
|
68
|
+
});
|
|
69
|
+
return {
|
|
70
|
+
error: getErrorShape({
|
|
71
|
+
config: opts.router._def._config,
|
|
72
|
+
error,
|
|
73
|
+
type,
|
|
74
|
+
path,
|
|
75
|
+
input,
|
|
76
|
+
ctx
|
|
77
|
+
})
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function caughtErrorToData(cause, errorOpts) {
|
|
82
|
+
const { router , req , onError } = errorOpts.opts;
|
|
83
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
84
|
+
onError?.({
|
|
85
|
+
error,
|
|
86
|
+
path: errorOpts.path,
|
|
87
|
+
input: errorOpts.input,
|
|
88
|
+
ctx: errorOpts.ctx,
|
|
89
|
+
type: errorOpts.type,
|
|
90
|
+
req
|
|
91
|
+
});
|
|
92
|
+
const untransformedJSON = {
|
|
93
|
+
error: getErrorShape({
|
|
94
|
+
config: router._def._config,
|
|
95
|
+
error,
|
|
96
|
+
type: errorOpts.type,
|
|
97
|
+
path: errorOpts.path,
|
|
98
|
+
input: errorOpts.input,
|
|
99
|
+
ctx: errorOpts.ctx
|
|
100
|
+
})
|
|
101
|
+
};
|
|
102
|
+
const transformedJSON = transformTRPCResponse(router._def._config, untransformedJSON);
|
|
103
|
+
const body = JSON.stringify(transformedJSON);
|
|
104
|
+
return {
|
|
105
|
+
error,
|
|
106
|
+
untransformedJSON,
|
|
107
|
+
body
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// implementation
|
|
111
|
+
async function resolveHTTPResponse(opts) {
|
|
112
|
+
const { router , req , unstable_onHead , unstable_onChunk } = opts;
|
|
113
|
+
if (req.method === 'HEAD') {
|
|
114
|
+
// can be used for lambda warmup
|
|
115
|
+
const headResponse = {
|
|
116
|
+
status: 204
|
|
117
|
+
};
|
|
118
|
+
unstable_onHead?.(headResponse, false);
|
|
119
|
+
unstable_onChunk?.([
|
|
120
|
+
-1,
|
|
121
|
+
''
|
|
122
|
+
]);
|
|
123
|
+
return headResponse;
|
|
124
|
+
}
|
|
125
|
+
const contentTypeHandler = opts.contentTypeHandler ?? fallbackContentTypeHandler;
|
|
126
|
+
const batchingEnabled = opts.batching?.enabled ?? true;
|
|
127
|
+
const type = HTTP_METHOD_PROCEDURE_TYPE_MAP[req.method] ?? 'unknown';
|
|
128
|
+
let ctx = undefined;
|
|
129
|
+
let paths;
|
|
130
|
+
const isBatchCall = !!req.query.get('batch');
|
|
131
|
+
const isStreamCall = isBatchCall && unstable_onHead && unstable_onChunk && req.headers['trpc-batch-mode'] === 'stream';
|
|
132
|
+
try {
|
|
133
|
+
if (opts.error) {
|
|
134
|
+
throw opts.error;
|
|
135
|
+
}
|
|
136
|
+
if (isBatchCall && !batchingEnabled) {
|
|
137
|
+
throw new Error(`Batching is not enabled on the server`);
|
|
138
|
+
}
|
|
139
|
+
/* istanbul ignore if -- @preserve */ if (type === 'subscription') {
|
|
140
|
+
throw new TRPCError({
|
|
141
|
+
message: 'Subscriptions should use wsLink',
|
|
142
|
+
code: 'METHOD_NOT_SUPPORTED'
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
if (type === 'unknown') {
|
|
146
|
+
throw new TRPCError({
|
|
147
|
+
message: `Unexpected request method ${req.method}`,
|
|
148
|
+
code: 'METHOD_NOT_SUPPORTED'
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const inputs = await contentTypeHandler.getInputs({
|
|
152
|
+
isBatchCall,
|
|
153
|
+
req,
|
|
154
|
+
router,
|
|
155
|
+
preprocessedBody: opts.preprocessedBody ?? false
|
|
156
|
+
});
|
|
157
|
+
paths = isBatchCall ? decodeURIComponent(opts.path).split(',') : [
|
|
158
|
+
opts.path
|
|
159
|
+
];
|
|
160
|
+
const info = {
|
|
161
|
+
isBatchCall,
|
|
162
|
+
calls: paths.map((path, idx)=>({
|
|
163
|
+
path,
|
|
164
|
+
type,
|
|
165
|
+
input: inputs[idx] ?? undefined
|
|
166
|
+
}))
|
|
167
|
+
};
|
|
168
|
+
ctx = await opts.createContext({
|
|
169
|
+
info
|
|
170
|
+
});
|
|
171
|
+
const promises = paths.map((path, index)=>inputToProcedureCall({
|
|
172
|
+
opts,
|
|
173
|
+
ctx,
|
|
174
|
+
type,
|
|
175
|
+
input: inputs[index],
|
|
176
|
+
path
|
|
177
|
+
}));
|
|
178
|
+
if (!isStreamCall) {
|
|
179
|
+
/**
|
|
180
|
+
* Non-streaming response:
|
|
181
|
+
* - await all responses in parallel, blocking on the slowest one
|
|
182
|
+
* - create headers with known response body
|
|
183
|
+
* - return a complete HTTPResponse
|
|
184
|
+
*/ const untransformedJSON = await Promise.all(promises);
|
|
185
|
+
const errors = untransformedJSON.flatMap((response)=>'error' in response ? [
|
|
186
|
+
response.error
|
|
187
|
+
] : []);
|
|
188
|
+
const headResponse1 = initResponse({
|
|
189
|
+
ctx,
|
|
190
|
+
paths,
|
|
191
|
+
type,
|
|
192
|
+
responseMeta: opts.responseMeta,
|
|
193
|
+
untransformedJSON,
|
|
194
|
+
errors
|
|
195
|
+
});
|
|
196
|
+
unstable_onHead?.(headResponse1, false);
|
|
197
|
+
// return body stuff
|
|
198
|
+
const result = isBatchCall ? untransformedJSON : untransformedJSON[0]; // eslint-disable-line @typescript-eslint/no-non-null-assertion -- `untransformedJSON` should be the length of `paths` which should be at least 1 otherwise there wouldn't be a request at all
|
|
199
|
+
const transformedJSON = transformTRPCResponse(router._def._config, result);
|
|
200
|
+
const body = JSON.stringify(transformedJSON);
|
|
201
|
+
unstable_onChunk?.([
|
|
202
|
+
-1,
|
|
203
|
+
body
|
|
204
|
+
]);
|
|
205
|
+
return {
|
|
206
|
+
status: headResponse1.status,
|
|
207
|
+
headers: headResponse1.headers,
|
|
208
|
+
body
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Streaming response:
|
|
213
|
+
* - block on none, call `onChunk` as soon as each response is ready
|
|
214
|
+
* - create headers with minimal data (cannot know the response body in advance)
|
|
215
|
+
* - return void
|
|
216
|
+
*/ const headResponse2 = initResponse({
|
|
217
|
+
ctx,
|
|
218
|
+
paths,
|
|
219
|
+
type,
|
|
220
|
+
responseMeta: opts.responseMeta
|
|
221
|
+
});
|
|
222
|
+
unstable_onHead(headResponse2, true);
|
|
223
|
+
const indexedPromises = new Map(promises.map((promise, index)=>[
|
|
224
|
+
index,
|
|
225
|
+
promise.then((r)=>[
|
|
226
|
+
index,
|
|
227
|
+
r
|
|
228
|
+
])
|
|
229
|
+
]));
|
|
230
|
+
for (const _ of paths){
|
|
231
|
+
const [index, untransformedJSON1] = await Promise.race(indexedPromises.values());
|
|
232
|
+
indexedPromises.delete(index);
|
|
233
|
+
try {
|
|
234
|
+
const transformedJSON1 = transformTRPCResponse(router._def._config, untransformedJSON1);
|
|
235
|
+
const body1 = JSON.stringify(transformedJSON1);
|
|
236
|
+
unstable_onChunk([
|
|
237
|
+
index,
|
|
238
|
+
body1
|
|
239
|
+
]);
|
|
240
|
+
} catch (cause) {
|
|
241
|
+
const path = paths[index];
|
|
242
|
+
const input = inputs[index];
|
|
243
|
+
const { body: body2 } = caughtErrorToData(cause, {
|
|
244
|
+
opts,
|
|
245
|
+
ctx,
|
|
246
|
+
type,
|
|
247
|
+
path,
|
|
248
|
+
input
|
|
249
|
+
});
|
|
250
|
+
unstable_onChunk([
|
|
251
|
+
index,
|
|
252
|
+
body2
|
|
253
|
+
]);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
257
|
+
} catch (cause1) {
|
|
258
|
+
// we get here if
|
|
259
|
+
// - batching is called when it's not enabled
|
|
260
|
+
// - `createContext()` throws
|
|
261
|
+
// - `router._def._config.transformer.output.serialize()` throws
|
|
262
|
+
// - post body is too large
|
|
263
|
+
// - input deserialization fails
|
|
264
|
+
// - `errorFormatter` return value is malformed
|
|
265
|
+
const { error , untransformedJSON: untransformedJSON2 , body: body3 } = caughtErrorToData(cause1, {
|
|
266
|
+
opts,
|
|
267
|
+
ctx,
|
|
268
|
+
type
|
|
269
|
+
});
|
|
270
|
+
const headResponse3 = initResponse({
|
|
271
|
+
ctx,
|
|
272
|
+
paths,
|
|
273
|
+
type,
|
|
274
|
+
responseMeta: opts.responseMeta,
|
|
275
|
+
untransformedJSON: untransformedJSON2,
|
|
276
|
+
errors: [
|
|
277
|
+
error
|
|
278
|
+
]
|
|
279
|
+
});
|
|
280
|
+
unstable_onHead?.(headResponse3, false);
|
|
281
|
+
unstable_onChunk?.([
|
|
282
|
+
-1,
|
|
283
|
+
body3
|
|
284
|
+
]);
|
|
285
|
+
return {
|
|
286
|
+
status: headResponse3.status,
|
|
287
|
+
headers: headResponse3.headers,
|
|
288
|
+
body: body3
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export { resolveHTTPResponse };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { TRPCError } from '../error/TRPCError';
|
|
2
|
+
import type { ProcedureType } from '../procedure';
|
|
3
|
+
import type { AnyRouter, inferRouterContext, inferRouterError } from '../router';
|
|
4
|
+
import type { TRPCResponse } from '../rpc';
|
|
5
|
+
import type { Dict } from '../types';
|
|
6
|
+
export type HTTPHeaders = Dict<string[] | string>;
|
|
7
|
+
export interface HTTPResponse {
|
|
8
|
+
status: number;
|
|
9
|
+
headers?: HTTPHeaders;
|
|
10
|
+
body?: string;
|
|
11
|
+
}
|
|
12
|
+
export type ResponseChunk = [procedureIndex: number, responseBody: string];
|
|
13
|
+
export interface ResponseMeta {
|
|
14
|
+
status?: number;
|
|
15
|
+
headers?: HTTPHeaders;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export type ResponseMetaFn<TRouter extends AnyRouter> = (opts: {
|
|
21
|
+
data: TRPCResponse<unknown, inferRouterError<TRouter>>[];
|
|
22
|
+
ctx?: inferRouterContext<TRouter>;
|
|
23
|
+
/**
|
|
24
|
+
* The different tRPC paths requested
|
|
25
|
+
**/
|
|
26
|
+
paths?: string[];
|
|
27
|
+
type: ProcedureType | 'unknown';
|
|
28
|
+
errors: TRPCError[];
|
|
29
|
+
/**
|
|
30
|
+
* `true` if the `ResponseMeta` are being
|
|
31
|
+
* generated without knowing the response data
|
|
32
|
+
* (e.g. for streaming requests).
|
|
33
|
+
*/
|
|
34
|
+
eagerGeneration?: boolean;
|
|
35
|
+
}) => ResponseMeta;
|
|
36
|
+
export interface HTTPRequest {
|
|
37
|
+
method: string;
|
|
38
|
+
query: URLSearchParams;
|
|
39
|
+
headers: HTTPHeaders;
|
|
40
|
+
body: unknown;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Base interface for anything using HTTP
|
|
44
|
+
*/
|
|
45
|
+
export interface HTTPBaseHandlerOptions<TRouter extends AnyRouter, TRequest> extends BaseHandlerOptions<TRouter, TRequest> {
|
|
46
|
+
/**
|
|
47
|
+
* Add handler to be called before response is sent to the user
|
|
48
|
+
* Useful for setting cache headers
|
|
49
|
+
* @link https://trpc.io/docs/v11/caching
|
|
50
|
+
*/
|
|
51
|
+
responseMeta?: ResponseMetaFn<TRouter>;
|
|
52
|
+
}
|
|
53
|
+
/** @internal */
|
|
54
|
+
export type ProcedureCall = {
|
|
55
|
+
type: ProcedureType;
|
|
56
|
+
input?: unknown;
|
|
57
|
+
path: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Information about the incoming request
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
export type TRPCRequestInfo = {
|
|
64
|
+
isBatchCall: boolean;
|
|
65
|
+
calls: ProcedureCall[];
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Inner createContext function for `resolveHTTPResponse` used to forward `TRPCRequestInfo` to `createContext`
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export type ResolveHTTPRequestOptionsContextFn<TRouter extends AnyRouter> = (opts: {
|
|
72
|
+
info: TRPCRequestInfo;
|
|
73
|
+
}) => Promise<inferRouterContext<TRouter>>;
|
|
74
|
+
/**
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
export type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
|
|
78
|
+
error: TRPCError;
|
|
79
|
+
type: ProcedureType | 'unknown';
|
|
80
|
+
path: string | undefined;
|
|
81
|
+
req: TRequest;
|
|
82
|
+
input: unknown;
|
|
83
|
+
ctx: inferRouterContext<TRouter> | undefined;
|
|
84
|
+
}) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Base interface for any response handler
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
|
|
90
|
+
onError?: OnErrorFunction<TRouter, TRequest>;
|
|
91
|
+
batching?: {
|
|
92
|
+
enabled: boolean;
|
|
93
|
+
};
|
|
94
|
+
router: TRouter;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **DO NOT IMPORT FROM HERE FILE**
|
|
3
|
+
*
|
|
4
|
+
* This file is here to:
|
|
5
|
+
* - make TypeScript happy and prevent _"The inferred type of 'createContext' cannot be named without a reference to [...]"_.
|
|
6
|
+
* - the the glue between the official `@trpc/*`-packages
|
|
7
|
+
*
|
|
8
|
+
*
|
|
9
|
+
* If you seem to need to import anything from here, please open an issue at https://github.com/trpc/trpc/issues
|
|
10
|
+
*/
|
|
11
|
+
export type { DefaultErrorShape, DefaultErrorData } from './error/formatter';
|
|
12
|
+
export { getErrorShape } from './error/getErrorShape';
|
|
13
|
+
export { TRPCError, getCauseFromUnknown, getTRPCErrorFromUnknown, } from './error/TRPCError';
|
|
14
|
+
export { initTRPC } from './initTRPC';
|
|
15
|
+
export type { AnyMiddlewareFunction, MiddlewareFunction, MiddlewareBuilder, } from './middleware';
|
|
16
|
+
export { createInputMiddleware, createOutputMiddleware, experimental_standaloneMiddleware, middlewareMarker, } from './middleware';
|
|
17
|
+
export type { inferParser } from './parser';
|
|
18
|
+
export type { Procedure, ProcedureType, AnyProcedure, AnyQueryProcedure, AnyMutationProcedure, AnySubscriptionProcedure, ProcedureArgs, ProcedureOptions, MutationProcedure, inferHandlerInput, inferProcedureInput, inferProcedureOutput, inferTransformedProcedureOutput, inferTransformedSubscriptionOutput, inferProcedureParams, QueryProcedure, SubscriptionProcedure, } from './procedure';
|
|
19
|
+
export { procedureTypes } from './procedure';
|
|
20
|
+
export type { ProcedureBuilder } from './procedureBuilder';
|
|
21
|
+
export { unsetMarker, createBuilder } from './procedureBuilder';
|
|
22
|
+
export type { AnyRootConfig, RootConfig } from './rootConfig';
|
|
23
|
+
export type { AnyRouter, ProcedureRecord, ProcedureRouterRecord, CreateRouterInner, Router, RouterCaller, AnyRouterDef, inferRouterContext, inferRouterError, inferRouterInputs, inferRouterMeta, inferRouterOutputs, createRouterFactory, } from './router';
|
|
24
|
+
export type { TRPCInferrable, inferErrorShape } from './TRPCInferrable';
|
|
25
|
+
export { callProcedure, mergeRouters } from './router';
|
|
26
|
+
export type { CombinedDataTransformer, CombinedDataTransformerClient, DataTransformer, DataTransformerOptions, DefaultDataTransformer, } from './transformer';
|
|
27
|
+
export { transformResult, transformTRPCResponse } from './transformer';
|
|
28
|
+
export { createFlatProxy, createRecursiveProxy } from './createProxy';
|
|
29
|
+
export type { SerializeObject, Serialize } from './serialize';
|
|
30
|
+
export type { DeepPartial, Dict, DistributiveOmit, Filter, FilterKeys, Maybe, MaybePromise, Simplify, Unwrap, WithoutIndexSignature, Overwrite, PickFirstDefined, ValidateShape, IntersectionError, ProtectedIntersection, } from './types';
|
|
31
|
+
export { isObject } from './utils';
|
|
32
|
+
/**
|
|
33
|
+
* These should be re-exported from separate entrypoints in server package
|
|
34
|
+
*/
|
|
35
|
+
export * from './rpc';
|
|
36
|
+
export * from './http';
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,+BAA+B,EAC/B,kCAAkC,EAClC,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGtE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY,EACV,WAAW,EACX,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;GAEG;AACH,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getErrorShape = require('./error/getErrorShape.js');
|
|
4
|
+
var TRPCError = require('./error/TRPCError.js');
|
|
5
|
+
var initTRPC = require('./initTRPC.js');
|
|
6
|
+
var middleware = require('./middleware.js');
|
|
7
|
+
var procedure = require('./procedure.js');
|
|
8
|
+
var procedureBuilder = require('./procedureBuilder.js');
|
|
9
|
+
var router = require('./router.js');
|
|
10
|
+
var transformer = require('./transformer.js');
|
|
11
|
+
var createProxy = require('./createProxy.js');
|
|
12
|
+
var utils = require('./utils.js');
|
|
13
|
+
var codes = require('./rpc/codes.js');
|
|
14
|
+
var parseTRPCMessage = require('./rpc/parseTRPCMessage.js');
|
|
15
|
+
var getHTTPStatusCode = require('./http/getHTTPStatusCode.js');
|
|
16
|
+
var resolveHTTPResponse = require('./http/resolveHTTPResponse.js');
|
|
17
|
+
var batchStreamFormatter = require('./http/batchStreamFormatter.js');
|
|
18
|
+
var contentType = require('./http/contentType.js');
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
exports.getErrorShape = getErrorShape.getErrorShape;
|
|
23
|
+
exports.TRPCError = TRPCError.TRPCError;
|
|
24
|
+
exports.getCauseFromUnknown = TRPCError.getCauseFromUnknown;
|
|
25
|
+
exports.getTRPCErrorFromUnknown = TRPCError.getTRPCErrorFromUnknown;
|
|
26
|
+
exports.initTRPC = initTRPC.initTRPC;
|
|
27
|
+
exports.createInputMiddleware = middleware.createInputMiddleware;
|
|
28
|
+
exports.createOutputMiddleware = middleware.createOutputMiddleware;
|
|
29
|
+
exports.experimental_standaloneMiddleware = middleware.experimental_standaloneMiddleware;
|
|
30
|
+
exports.middlewareMarker = middleware.middlewareMarker;
|
|
31
|
+
exports.procedureTypes = procedure.procedureTypes;
|
|
32
|
+
exports.createBuilder = procedureBuilder.createBuilder;
|
|
33
|
+
exports.unsetMarker = procedureBuilder.unsetMarker;
|
|
34
|
+
exports.callProcedure = router.callProcedure;
|
|
35
|
+
exports.mergeRouters = router.mergeRouters;
|
|
36
|
+
exports.transformResult = transformer.transformResult;
|
|
37
|
+
exports.transformTRPCResponse = transformer.transformTRPCResponse;
|
|
38
|
+
exports.createFlatProxy = createProxy.createFlatProxy;
|
|
39
|
+
exports.createRecursiveProxy = createProxy.createRecursiveProxy;
|
|
40
|
+
exports.isObject = utils.isObject;
|
|
41
|
+
exports.TRPC_ERROR_CODES_BY_KEY = codes.TRPC_ERROR_CODES_BY_KEY;
|
|
42
|
+
exports.TRPC_ERROR_CODES_BY_NUMBER = codes.TRPC_ERROR_CODES_BY_NUMBER;
|
|
43
|
+
exports.parseTRPCMessage = parseTRPCMessage.parseTRPCMessage;
|
|
44
|
+
exports.getHTTPStatusCode = getHTTPStatusCode.getHTTPStatusCode;
|
|
45
|
+
exports.getHTTPStatusCodeFromError = getHTTPStatusCode.getHTTPStatusCodeFromError;
|
|
46
|
+
exports.resolveHTTPResponse = resolveHTTPResponse.resolveHTTPResponse;
|
|
47
|
+
exports.getBatchStreamFormatter = batchStreamFormatter.getBatchStreamFormatter;
|
|
48
|
+
exports.getJsonContentTypeInputs = contentType.getJsonContentTypeInputs;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { getErrorShape } from './error/getErrorShape.mjs';
|
|
2
|
+
export { TRPCError, getCauseFromUnknown, getTRPCErrorFromUnknown } from './error/TRPCError.mjs';
|
|
3
|
+
export { initTRPC } from './initTRPC.mjs';
|
|
4
|
+
export { createInputMiddleware, createOutputMiddleware, experimental_standaloneMiddleware, middlewareMarker } from './middleware.mjs';
|
|
5
|
+
export { procedureTypes } from './procedure.mjs';
|
|
6
|
+
export { createBuilder, unsetMarker } from './procedureBuilder.mjs';
|
|
7
|
+
export { callProcedure, mergeRouters } from './router.mjs';
|
|
8
|
+
export { transformResult, transformTRPCResponse } from './transformer.mjs';
|
|
9
|
+
export { createFlatProxy, createRecursiveProxy } from './createProxy.mjs';
|
|
10
|
+
export { isObject } from './utils.mjs';
|
|
11
|
+
export { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER } from './rpc/codes.mjs';
|
|
12
|
+
export { parseTRPCMessage } from './rpc/parseTRPCMessage.mjs';
|
|
13
|
+
export { getHTTPStatusCode, getHTTPStatusCodeFromError } from './http/getHTTPStatusCode.mjs';
|
|
14
|
+
export { resolveHTTPResponse } from './http/resolveHTTPResponse.mjs';
|
|
15
|
+
export { getBatchStreamFormatter } from './http/batchStreamFormatter.mjs';
|
|
16
|
+
export { getJsonContentTypeInputs } from './http/contentType.mjs';
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type DefaultErrorShape, type ErrorFormatter, type ErrorFormatterShape } from './error/formatter';
|
|
2
|
+
import { type CreateRootConfigTypes, type RootConfig, type RootConfigTypes, type RuntimeConfig } from './rootConfig';
|
|
3
|
+
import { mergeRouters } from './router';
|
|
4
|
+
import { type DataTransformerOptions, type DefaultDataTransformer } from './transformer';
|
|
5
|
+
import type { PickFirstDefined, Unwrap, ValidateShape } from './types';
|
|
6
|
+
type PartialRootConfigTypes = Partial<RootConfigTypes>;
|
|
7
|
+
type CreateRootConfigTypesFromPartial<TTypes extends PartialRootConfigTypes> = CreateRootConfigTypes<{
|
|
8
|
+
ctx: TTypes['ctx'] extends RootConfigTypes['ctx'] ? TTypes['ctx'] : object;
|
|
9
|
+
meta: TTypes['meta'] extends RootConfigTypes['meta'] ? TTypes['meta'] : object;
|
|
10
|
+
errorShape: TTypes['errorShape'];
|
|
11
|
+
transformer: DataTransformerOptions;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* TODO: This can be improved:
|
|
15
|
+
* - We should be able to chain `.meta()`/`.context()` only once
|
|
16
|
+
* - Simplify typings
|
|
17
|
+
* - Doesn't need to be a class but it doesn't really hurt either
|
|
18
|
+
*/
|
|
19
|
+
declare class TRPCBuilder<TParams extends PartialRootConfigTypes = object> {
|
|
20
|
+
/**
|
|
21
|
+
* Add a context shape as a generic to the root object
|
|
22
|
+
* @link https://trpc.io/docs/v11/server/context
|
|
23
|
+
*/
|
|
24
|
+
context<TNewContext extends RootConfigTypes['ctx'] | ((...args: unknown[]) => RootConfigTypes['ctx'])>(): TRPCBuilder<TParams extends object ? { [K in "ctx" | keyof import("./types").WithoutIndexSignature<TParams>]: K extends "ctx" ? {
|
|
25
|
+
ctx: Unwrap<TNewContext>;
|
|
26
|
+
}[K] : K extends keyof TParams ? TParams[K] : never; } : {
|
|
27
|
+
ctx: Unwrap<TNewContext>;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Add a meta shape as a generic to the root object
|
|
31
|
+
* @link https://trpc.io/docs/v11/quickstart
|
|
32
|
+
*/
|
|
33
|
+
meta<TNewMeta extends RootConfigTypes['meta']>(): TRPCBuilder<TParams extends object ? { [K in "meta" | keyof import("./types").WithoutIndexSignature<TParams>]: K extends "meta" ? {
|
|
34
|
+
meta: TNewMeta;
|
|
35
|
+
}[K] : K extends keyof TParams ? TParams[K] : never; } : {
|
|
36
|
+
meta: TNewMeta;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Create the root object
|
|
40
|
+
* @link https://trpc.io/docs/v11/server/routers#initialize-trpc
|
|
41
|
+
*/
|
|
42
|
+
create<TOptions extends Partial<RuntimeConfig<CreateRootConfigTypesFromPartial<TParams>>>>(options?: ValidateShape<TOptions, Partial<RuntimeConfig<CreateRootConfigTypesFromPartial<TParams>>>> | undefined): {
|
|
43
|
+
/**
|
|
44
|
+
* These are just types, they can't be used
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
_config: RootConfig<{
|
|
48
|
+
ctx: TParams["ctx"] extends object ? TParams["ctx"] : object;
|
|
49
|
+
meta: TParams["meta"] extends object ? TParams["meta"] : object;
|
|
50
|
+
errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends object ? TParams["ctx"] : object, DefaultErrorShape>>>;
|
|
51
|
+
transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] : DefaultDataTransformer;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* Builder object for creating procedures
|
|
55
|
+
* @link https://trpc.io/docs/v11/server/procedures
|
|
56
|
+
*/
|
|
57
|
+
procedure: import("./procedureBuilder").ProcedureBuilder<TParams["ctx"] extends object ? TParams["ctx"] : object, TParams["meta"] extends object ? TParams["meta"] : object, object, typeof import("./procedureBuilder").unsetMarker, typeof import("./procedureBuilder").unsetMarker, typeof import("./procedureBuilder").unsetMarker, typeof import("./procedureBuilder").unsetMarker>;
|
|
58
|
+
/**
|
|
59
|
+
* Create reusable middlewares
|
|
60
|
+
* @link https://trpc.io/docs/v11/server/middlewares
|
|
61
|
+
*/
|
|
62
|
+
middleware: <$ContextOverrides>(fn: import("./middleware").MiddlewareFunction<TParams["ctx"] extends object ? TParams["ctx"] : object, TParams["meta"] extends object ? TParams["meta"] : object, object, $ContextOverrides, unknown>) => import("./middleware").MiddlewareBuilder<TParams["ctx"] extends object ? TParams["ctx"] : object, TParams["meta"] extends object ? TParams["meta"] : object, $ContextOverrides, unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Create a router
|
|
65
|
+
* @link https://trpc.io/docs/v11/server/routers
|
|
66
|
+
*/
|
|
67
|
+
router: <TProcRouterRecord extends import("./router").ProcedureRouterRecord>(procedures: TProcRouterRecord) => import("./router").CreateRouterInner<RootConfig<{
|
|
68
|
+
ctx: TParams["ctx"] extends object ? TParams["ctx"] : object;
|
|
69
|
+
meta: TParams["meta"] extends object ? TParams["meta"] : object;
|
|
70
|
+
errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends object ? TParams["ctx"] : object, DefaultErrorShape>>>;
|
|
71
|
+
transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] : DefaultDataTransformer;
|
|
72
|
+
}>, TProcRouterRecord>;
|
|
73
|
+
/**
|
|
74
|
+
* Merge Routers
|
|
75
|
+
* @link https://trpc.io/docs/v11/server/merging-routers
|
|
76
|
+
*/
|
|
77
|
+
mergeRouters: typeof mergeRouters;
|
|
78
|
+
/**
|
|
79
|
+
* Create a server-side caller for a router
|
|
80
|
+
* @link https://trpc.io/docs/v11/server/server-side-calls
|
|
81
|
+
*/
|
|
82
|
+
createCallerFactory: <TRouter extends import("./router").Router<import("./router").AnyRouterDef<RootConfig<{
|
|
83
|
+
ctx: TParams["ctx"] extends object ? TParams["ctx"] : object;
|
|
84
|
+
meta: TParams["meta"] extends object ? TParams["meta"] : object;
|
|
85
|
+
errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends object ? TParams["ctx"] : object, DefaultErrorShape>>>;
|
|
86
|
+
transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] : DefaultDataTransformer;
|
|
87
|
+
}>>>>(router: TRouter) => import("./router").RouterCaller<TRouter["_def"]>;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Builder to initialize the tRPC root object - use this exactly once per backend
|
|
92
|
+
* @link https://trpc.io/docs/v11/quickstart
|
|
93
|
+
*/
|
|
94
|
+
export declare const initTRPC: TRPCBuilder<object>;
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=initTRPC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initTRPC.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/initTRPC.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAEV,gBAAgB,EAChB,MAAM,EACN,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,KAAK,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEvD,KAAK,gCAAgC,CAAC,MAAM,SAAS,sBAAsB,IACzE,qBAAqB,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,GAChD,MAAM,CAAC,MAAM,CAAC,GACd,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACjC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC,CAAC;AAEL;;;;;GAKG;AAEH,cAAM,WAAW,CAAC,OAAO,SAAS,sBAAsB,GAAG,MAAM;IAC/D;;;OAGG;IACH,OAAO,CACL,WAAW,SACP,eAAe,CAAC,KAAK,CAAC,GACtB,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;aAER,OAAO,WAAW,CAAC;;aAAnB,OAAO,WAAW,CAAC;;IAKjE;;;OAGG;IACH,IAAI,CAAC,QAAQ,SAAS,eAAe,CAAC,MAAM,CAAC;cACE,QAAQ;;cAAR,QAAQ;;IAKvD;;;OAGG;IACH,MAAM,CACJ,QAAQ,SAAS,OAAO,CACtB,aAAa,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,CACzD,EAED,OAAO,CAAC,EACJ,aAAa,CACX,QAAQ,EACR,OAAO,CAAC,aAAa,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,CAAC,CAClE,GACD,SAAS;QAyEX;;;WAGG;;;;;;;QAEH;;;WAGG;;QAOH;;;WAGG;;QAKH;;;WAGG;;;;;;;QAEH;;;WAGG;;QAEH;;;WAGG;;;;;;;;CAzGR;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,qBAAoB,CAAC"}
|