@trpc/server 11.0.0-next-alpha.152 → 11.0.0-next-alpha.154
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/adapters/aws-lambda/index.d.ts +1 -1
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +6 -13
- package/dist/adapters/aws-lambda/index.mjs +2 -9
- package/dist/adapters/aws-lambda/utils.d.ts +2 -3
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +3 -11
- package/dist/adapters/express.mjs +3 -11
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +6 -14
- package/dist/adapters/fastify/index.mjs +4 -12
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +3 -12
- package/dist/adapters/fetch/index.mjs +1 -10
- package/dist/adapters/fetch/types.d.ts +1 -1
- package/dist/adapters/next.d.ts +3 -2
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +5 -13
- package/dist/adapters/next.mjs +3 -11
- 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/index.js +4 -5
- package/dist/adapters/node-http/content-type/json/index.mjs +2 -3
- package/dist/adapters/node-http/index.js +3 -11
- package/dist/adapters/node-http/index.mjs +3 -11
- 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 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +1 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +1 -1
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +3 -11
- package/dist/adapters/standalone.mjs +3 -11
- package/dist/adapters/ws.d.ts +3 -3
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +25 -31
- package/dist/adapters/ws.mjs +3 -9
- package/dist/bundle-analysis.json +74 -604
- package/dist/http.d.ts +2 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +14 -0
- package/dist/http.mjs +1 -0
- package/dist/index.d.ts +15 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -95
- package/dist/index.mjs +1 -90
- package/dist/{nodeHTTPRequestHandler-a7049e69.js → nodeHTTPRequestHandler-30028c9a.js} +3 -5
- package/dist/{nodeHTTPRequestHandler-ca65b7c9.mjs → nodeHTTPRequestHandler-36974696.mjs} +1 -3
- package/dist/{nodeHTTPRequestHandler-abbfb330.js → nodeHTTPRequestHandler-640c1f60.js} +1 -3
- package/dist/observable.d.ts +2 -0
- package/dist/observable.d.ts.map +1 -0
- package/dist/observable.js +14 -0
- package/dist/observable.mjs +1 -0
- package/dist/rpc.d.ts +2 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +14 -0
- package/dist/rpc.mjs +1 -0
- package/dist/unstableDoNotImportThis.d.ts +9 -0
- package/dist/unstableDoNotImportThis.d.ts.map +1 -0
- package/package.json +32 -41
- package/src/adapters/aws-lambda/index.ts +2 -3
- package/src/adapters/aws-lambda/utils.ts +3 -4
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +4 -3
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -1
- package/src/adapters/fetch/fetchRequestHandler.ts +4 -3
- package/src/adapters/fetch/types.ts +1 -1
- package/src/adapters/next.ts +3 -8
- 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 +4 -3
- package/src/adapters/node-http/types.ts +1 -2
- package/src/adapters/standalone.ts +1 -1
- package/src/adapters/ws.ts +14 -9
- package/src/http.ts +2 -0
- package/src/index.ts +30 -14
- package/src/observable.ts +1 -0
- package/src/rpc.ts +2 -0
- package/src/unstableDoNotImportThis.ts +9 -0
- package/dist/TRPCError-0b220715.js +0 -42
- package/dist/TRPCError-2bb6a7d0.js +0 -37
- package/dist/TRPCError-7e8e2a1b.mjs +0 -39
- package/dist/batchStreamFormatter-2c1405a1.js +0 -31
- package/dist/batchStreamFormatter-93cdcdd4.js +0 -32
- package/dist/batchStreamFormatter-fc1ffb26.mjs +0 -30
- package/dist/codes-62b059d2.js +0 -48
- package/dist/codes-87f6824b.js +0 -48
- package/dist/codes-c924c3db.mjs +0 -44
- package/dist/config-50853f49.mjs +0 -6
- package/dist/config-774dae36.js +0 -8
- package/dist/config-e3dd843b.js +0 -11
- package/dist/contentType-0447b256.js +0 -58
- package/dist/contentType-31223e57.mjs +0 -52
- package/dist/contentType-a229790b.js +0 -54
- package/dist/core/index.d.ts +0 -9
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/initTRPC.d.ts +0 -84
- package/dist/core/initTRPC.d.ts.map +0 -1
- package/dist/core/internals/config.d.ts +0 -75
- package/dist/core/internals/config.d.ts.map +0 -1
- package/dist/core/internals/getParseFn.d.ts +0 -4
- package/dist/core/internals/getParseFn.d.ts.map +0 -1
- package/dist/core/internals/mergeRouters.d.ts +0 -15
- package/dist/core/internals/mergeRouters.d.ts.map +0 -1
- package/dist/core/internals/mergeWithoutOverrides.d.ts +0 -5
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +0 -1
- package/dist/core/internals/omitPrototype.d.ts +0 -6
- package/dist/core/internals/omitPrototype.d.ts.map +0 -1
- package/dist/core/internals/procedureBuilder.d.ts +0 -99
- package/dist/core/internals/procedureBuilder.d.ts.map +0 -1
- package/dist/core/internals/utils.d.ts +0 -50
- package/dist/core/internals/utils.d.ts.map +0 -1
- package/dist/core/middleware.d.ts +0 -106
- package/dist/core/middleware.d.ts.map +0 -1
- package/dist/core/parser.d.ts +0 -28
- package/dist/core/parser.d.ts.map +0 -1
- package/dist/core/procedure.d.ts +0 -54
- package/dist/core/procedure.d.ts.map +0 -1
- package/dist/core/router.d.ts +0 -64
- package/dist/core/router.d.ts.map +0 -1
- package/dist/core/types.d.ts +0 -24
- package/dist/core/types.d.ts.map +0 -1
- package/dist/error/TRPCError.d.ts +0 -12
- package/dist/error/TRPCError.d.ts.map +0 -1
- package/dist/error/formatter.d.ts +0 -33
- package/dist/error/formatter.d.ts.map +0 -1
- package/dist/error/utils.d.ts +0 -9
- package/dist/error/utils.d.ts.map +0 -1
- package/dist/getCauseFromUnknown-2d66414a.mjs +0 -33
- package/dist/getCauseFromUnknown-ac5f46a2.js +0 -34
- package/dist/getCauseFromUnknown-d535264a.js +0 -35
- package/dist/http/batchStreamFormatter.d.ts +0 -24
- package/dist/http/batchStreamFormatter.d.ts.map +0 -1
- package/dist/http/contentType.d.ts +0 -29
- package/dist/http/contentType.d.ts.map +0 -1
- package/dist/http/getHTTPStatusCode.d.ts +0 -24
- package/dist/http/getHTTPStatusCode.d.ts.map +0 -1
- package/dist/http/index.d.ts +0 -5
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js +0 -22
- package/dist/http/index.mjs +0 -10
- package/dist/http/internals/types.d.ts +0 -32
- package/dist/http/internals/types.d.ts.map +0 -1
- package/dist/http/resolveHTTPResponse.d.ts +0 -52
- package/dist/http/resolveHTTPResponse.d.ts.map +0 -1
- package/dist/http/types.d.ts +0 -46
- package/dist/http/types.d.ts.map +0 -1
- package/dist/index-8759c3db.js +0 -48
- package/dist/index-a496f86b.js +0 -52
- package/dist/index-a9e3e610.mjs +0 -49
- package/dist/internals/invert.d.ts +0 -12
- package/dist/internals/invert.d.ts.map +0 -1
- package/dist/internals/types.d.ts +0 -26
- package/dist/internals/types.d.ts.map +0 -1
- package/dist/observable/index.d.ts +0 -5
- package/dist/observable/index.d.ts.map +0 -1
- package/dist/observable/index.js +0 -156
- package/dist/observable/index.mjs +0 -147
- package/dist/observable/internals/identity.d.ts +0 -2
- package/dist/observable/internals/identity.d.ts.map +0 -1
- package/dist/observable/internals/observableToPromise.d.ts +0 -10
- package/dist/observable/internals/observableToPromise.d.ts.map +0 -1
- package/dist/observable/internals/pipe.d.ts +0 -4
- package/dist/observable/internals/pipe.d.ts.map +0 -1
- package/dist/observable/observable.d.ts +0 -5
- package/dist/observable/observable.d.ts.map +0 -1
- package/dist/observable/operators/index.d.ts +0 -4
- package/dist/observable/operators/index.d.ts.map +0 -1
- package/dist/observable/operators/map.d.ts +0 -3
- package/dist/observable/operators/map.d.ts.map +0 -1
- package/dist/observable/operators/share.d.ts +0 -6
- package/dist/observable/operators/share.d.ts.map +0 -1
- package/dist/observable/operators/tap.d.ts +0 -3
- package/dist/observable/operators/tap.d.ts.map +0 -1
- package/dist/observable/types.d.ts +0 -29
- package/dist/observable/types.d.ts.map +0 -1
- package/dist/observable-15588f28.js +0 -83
- package/dist/observable-464116ac.js +0 -84
- package/dist/observable-ade1bad8.mjs +0 -81
- package/dist/parseTRPCMessage-1377f305.js +0 -56
- package/dist/parseTRPCMessage-95955211.js +0 -63
- package/dist/parseTRPCMessage-a0f17853.mjs +0 -54
- package/dist/procedureBuilder-0446e596.js +0 -327
- package/dist/procedureBuilder-4b68e226.js +0 -349
- package/dist/procedureBuilder-cf58dadb.mjs +0 -340
- package/dist/resolveHTTPResponse-3ebaa4f6.mjs +0 -292
- package/dist/resolveHTTPResponse-7c84e387.js +0 -294
- package/dist/resolveHTTPResponse-fa37ffd7.js +0 -266
- package/dist/router-18d63731.js +0 -163
- package/dist/router-8dcebd61.js +0 -153
- package/dist/router-f9ce121f.mjs +0 -156
- package/dist/rpc/codes.d.ts +0 -51
- package/dist/rpc/codes.d.ts.map +0 -1
- package/dist/rpc/envelopes.d.ts +0 -95
- package/dist/rpc/envelopes.d.ts.map +0 -1
- package/dist/rpc/index.d.ts +0 -4
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.js +0 -12
- package/dist/rpc/index.mjs +0 -2
- package/dist/rpc/parseTRPCMessage.d.ts +0 -5
- package/dist/rpc/parseTRPCMessage.d.ts.map +0 -1
- package/dist/shared/createProxy/index.d.ts +0 -19
- package/dist/shared/createProxy/index.d.ts.map +0 -1
- package/dist/shared/getCauseFromUnknown.d.ts +0 -2
- package/dist/shared/getCauseFromUnknown.d.ts.map +0 -1
- package/dist/shared/getErrorShape.d.ts +0 -15
- package/dist/shared/getErrorShape.d.ts.map +0 -1
- package/dist/shared/index.d.ts +0 -8
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/index.js +0 -16
- package/dist/shared/index.mjs +0 -4
- package/dist/shared/internal/serialize.d.ts +0 -62
- package/dist/shared/internal/serialize.d.ts.map +0 -1
- package/dist/shared/jsonify.d.ts +0 -11
- package/dist/shared/jsonify.d.ts.map +0 -1
- package/dist/shared/transformTRPCResponse.d.ts +0 -9
- package/dist/shared/transformTRPCResponse.d.ts.map +0 -1
- package/dist/shared/types.d.ts +0 -6
- package/dist/shared/types.d.ts.map +0 -1
- package/dist/transformTRPCResponse-31040a38.mjs +0 -98
- package/dist/transformTRPCResponse-59486a84.js +0 -97
- package/dist/transformTRPCResponse-9f3b865f.js +0 -104
- package/dist/transformer.d.ts +0 -67
- package/dist/transformer.d.ts.map +0 -1
- package/dist/types.d.ts +0 -68
- package/dist/types.d.ts.map +0 -1
- package/dist/unstableInternalsExport.d.ts +0 -12
- package/dist/unstableInternalsExport.d.ts.map +0 -1
- package/dist/unstableInternalsExport.js +0 -16
- package/dist/unstableInternalsExport.mjs +0 -5
- package/src/core/index.ts +0 -28
- package/src/core/initTRPC.ts +0 -186
- package/src/core/internals/config.ts +0 -90
- package/src/core/internals/getParseFn.ts +0 -43
- package/src/core/internals/mergeRouters.ts +0 -90
- package/src/core/internals/mergeWithoutOverrides.ts +0 -19
- package/src/core/internals/omitPrototype.ts +0 -9
- package/src/core/internals/procedureBuilder.ts +0 -455
- package/src/core/internals/utils.ts +0 -79
- package/src/core/middleware.ts +0 -236
- package/src/core/parser.ts +0 -52
- package/src/core/procedure.ts +0 -68
- package/src/core/router.ts +0 -241
- package/src/core/types.ts +0 -67
- package/src/error/TRPCError.ts +0 -52
- package/src/error/formatter.ts +0 -54
- package/src/error/utils.ts +0 -23
- package/src/http/batchStreamFormatter.ts +0 -29
- package/src/http/contentType.ts +0 -99
- package/src/http/getHTTPStatusCode.ts +0 -61
- package/src/http/index.ts +0 -4
- package/src/http/internals/types.ts +0 -40
- package/src/http/resolveHTTPResponse.ts +0 -458
- package/src/http/types.ts +0 -51
- package/src/internals/invert.ts +0 -21
- package/src/internals/types.ts +0 -27
- package/src/observable/index.ts +0 -4
- package/src/observable/internals/identity.ts +0 -3
- package/src/observable/internals/observableToPromise.ts +0 -49
- package/src/observable/internals/pipe.ts +0 -23
- package/src/observable/observable.ts +0 -78
- package/src/observable/operators/index.ts +0 -3
- package/src/observable/operators/map.ts +0 -25
- package/src/observable/operators/share.ts +0 -65
- package/src/observable/operators/tap.ts +0 -26
- package/src/observable/types.ts +0 -80
- package/src/rpc/codes.ts +0 -44
- package/src/rpc/envelopes.ts +0 -136
- package/src/rpc/index.ts +0 -3
- package/src/rpc/parseTRPCMessage.ts +0 -84
- package/src/shared/createProxy/index.ts +0 -59
- package/src/shared/getCauseFromUnknown.ts +0 -31
- package/src/shared/getErrorShape.ts +0 -36
- package/src/shared/index.ts +0 -11
- package/src/shared/internal/serialize.ts +0 -122
- package/src/shared/jsonify.ts +0 -22
- package/src/shared/transformTRPCResponse.ts +0 -40
- package/src/shared/types.ts +0 -9
- package/src/transformer.ts +0 -84
- package/src/types.ts +0 -104
- package/src/unstableInternalsExport.ts +0 -12
- package/subscription/index.d.ts +0 -1
- package/subscription/index.js +0 -1
- package/unstableInternalsExport/index.d.ts +0 -1
- package/unstableInternalsExport/index.js +0 -1
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-f9ce121f.mjs';
|
|
2
|
-
import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/ function createMiddlewareFactory() {
|
|
7
|
-
function createMiddlewareInner(middlewares) {
|
|
8
|
-
return {
|
|
9
|
-
_middlewares: middlewares,
|
|
10
|
-
unstable_pipe (middlewareBuilderOrFn) {
|
|
11
|
-
const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
|
|
12
|
-
middlewareBuilderOrFn
|
|
13
|
-
];
|
|
14
|
-
return createMiddlewareInner([
|
|
15
|
-
...middlewares,
|
|
16
|
-
...pipedMiddleware
|
|
17
|
-
]);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function createMiddleware(fn) {
|
|
22
|
-
return createMiddlewareInner([
|
|
23
|
-
fn
|
|
24
|
-
]);
|
|
25
|
-
}
|
|
26
|
-
return createMiddleware;
|
|
27
|
-
}
|
|
28
|
-
const experimental_standaloneMiddleware = ()=>({
|
|
29
|
-
create: createMiddlewareFactory()
|
|
30
|
-
});
|
|
31
|
-
function isPlainObject(obj) {
|
|
32
|
-
return obj && typeof obj === 'object' && !Array.isArray(obj);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* @internal
|
|
36
|
-
* Please note, `trpc-openapi` uses this function.
|
|
37
|
-
*/ function createInputMiddleware(parse) {
|
|
38
|
-
const inputMiddleware = async function inputValidatorMiddleware(opts) {
|
|
39
|
-
let parsedInput;
|
|
40
|
-
const rawInput = await opts.getRawInput();
|
|
41
|
-
try {
|
|
42
|
-
parsedInput = await parse(rawInput);
|
|
43
|
-
} catch (cause) {
|
|
44
|
-
throw new TRPCError({
|
|
45
|
-
code: 'BAD_REQUEST',
|
|
46
|
-
cause
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
// Multiple input parsers
|
|
50
|
-
const combinedInput = isPlainObject(opts.input) && isPlainObject(parsedInput) ? {
|
|
51
|
-
...opts.input,
|
|
52
|
-
...parsedInput
|
|
53
|
-
} : parsedInput;
|
|
54
|
-
return opts.next({
|
|
55
|
-
input: combinedInput
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
inputMiddleware._type = 'input';
|
|
59
|
-
return inputMiddleware;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* @internal
|
|
63
|
-
*/ function createOutputMiddleware(parse) {
|
|
64
|
-
const outputMiddleware = async function outputValidatorMiddleware({ next }) {
|
|
65
|
-
const result = await next();
|
|
66
|
-
if (!result.ok) {
|
|
67
|
-
// pass through failures without validating
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
const data = await parse(result.data);
|
|
72
|
-
return {
|
|
73
|
-
...result,
|
|
74
|
-
data
|
|
75
|
-
};
|
|
76
|
-
} catch (cause) {
|
|
77
|
-
throw new TRPCError({
|
|
78
|
-
message: 'Output validation failed',
|
|
79
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
80
|
-
cause
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
outputMiddleware._type = 'output';
|
|
85
|
-
return outputMiddleware;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Ensures there are no duplicate keys when building a procedure.
|
|
90
|
-
*/ function mergeWithoutOverrides(obj1, ...objs) {
|
|
91
|
-
const newObj = Object.assign(Object.create(null), obj1);
|
|
92
|
-
for (const overrides of objs){
|
|
93
|
-
for(const key in overrides){
|
|
94
|
-
if (key in newObj && newObj[key] !== overrides[key]) {
|
|
95
|
-
throw new Error(`Duplicate key ${key}`);
|
|
96
|
-
}
|
|
97
|
-
newObj[key] = overrides[key];
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return newObj;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function mergeRouters(...routerList) {
|
|
104
|
-
const record = mergeWithoutOverrides({}, ...routerList.map((r)=>r._def.record));
|
|
105
|
-
const errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter)=>{
|
|
106
|
-
if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {
|
|
107
|
-
if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) {
|
|
108
|
-
throw new Error('You seem to have several error formatters');
|
|
109
|
-
}
|
|
110
|
-
return nextRouter._def._config.errorFormatter;
|
|
111
|
-
}
|
|
112
|
-
return currentErrorFormatter;
|
|
113
|
-
}, defaultFormatter);
|
|
114
|
-
const transformer = routerList.reduce((prev, current)=>{
|
|
115
|
-
if (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {
|
|
116
|
-
if (prev !== defaultTransformer && prev !== current._def._config.transformer) {
|
|
117
|
-
throw new Error('You seem to have several transformers');
|
|
118
|
-
}
|
|
119
|
-
return current._def._config.transformer;
|
|
120
|
-
}
|
|
121
|
-
return prev;
|
|
122
|
-
}, defaultTransformer);
|
|
123
|
-
const router = createRouterFactory({
|
|
124
|
-
errorFormatter,
|
|
125
|
-
transformer,
|
|
126
|
-
isDev: routerList.some((r)=>r._def._config.isDev),
|
|
127
|
-
allowOutsideOfServer: routerList.some((r)=>r._def._config.allowOutsideOfServer),
|
|
128
|
-
isServer: routerList.some((r)=>r._def._config.isServer),
|
|
129
|
-
$types: routerList[0]?._def._config.$types
|
|
130
|
-
})(record);
|
|
131
|
-
return router;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function getParseFn(procedureParser) {
|
|
135
|
-
const parser = procedureParser;
|
|
136
|
-
if (typeof parser === 'function') {
|
|
137
|
-
// ParserCustomValidatorEsque
|
|
138
|
-
return parser;
|
|
139
|
-
}
|
|
140
|
-
if (typeof parser.parseAsync === 'function') {
|
|
141
|
-
// ParserZodEsque
|
|
142
|
-
return parser.parseAsync.bind(parser);
|
|
143
|
-
}
|
|
144
|
-
if (typeof parser.parse === 'function') {
|
|
145
|
-
// ParserZodEsque
|
|
146
|
-
// ParserValibotEsque (<= v0.12.X)
|
|
147
|
-
return parser.parse.bind(parser);
|
|
148
|
-
}
|
|
149
|
-
if (typeof parser.validateSync === 'function') {
|
|
150
|
-
// ParserYupEsque
|
|
151
|
-
return parser.validateSync.bind(parser);
|
|
152
|
-
}
|
|
153
|
-
if (typeof parser.create === 'function') {
|
|
154
|
-
// ParserSuperstructEsque
|
|
155
|
-
return parser.create.bind(parser);
|
|
156
|
-
}
|
|
157
|
-
if (typeof parser.assert === 'function') {
|
|
158
|
-
// ParserScaleEsque
|
|
159
|
-
return (value)=>{
|
|
160
|
-
parser.assert(value);
|
|
161
|
-
return value;
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
throw new Error('Could not find a validator fn');
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* @internal
|
|
169
|
-
*/ const middlewareMarker = 'middlewareMarker';
|
|
170
|
-
/**
|
|
171
|
-
* @internal
|
|
172
|
-
*/ const unsetMarker = Symbol('unsetMarker');
|
|
173
|
-
|
|
174
|
-
function createNewBuilder(def1, def2) {
|
|
175
|
-
const { middlewares =[] , inputs , meta , ...rest } = def2;
|
|
176
|
-
// TODO: maybe have a fn here to warn about calls
|
|
177
|
-
return createBuilder({
|
|
178
|
-
...mergeWithoutOverrides(def1, rest),
|
|
179
|
-
inputs: [
|
|
180
|
-
...def1.inputs,
|
|
181
|
-
...inputs ?? []
|
|
182
|
-
],
|
|
183
|
-
middlewares: [
|
|
184
|
-
...def1.middlewares,
|
|
185
|
-
...middlewares
|
|
186
|
-
],
|
|
187
|
-
meta: def1.meta && meta ? {
|
|
188
|
-
...def1.meta,
|
|
189
|
-
...meta
|
|
190
|
-
} : meta ?? def1.meta
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
function createBuilder(initDef = {}) {
|
|
194
|
-
const _def = {
|
|
195
|
-
procedure: true,
|
|
196
|
-
inputs: [],
|
|
197
|
-
middlewares: [],
|
|
198
|
-
...initDef
|
|
199
|
-
};
|
|
200
|
-
const builder = {
|
|
201
|
-
_def,
|
|
202
|
-
input (input) {
|
|
203
|
-
const parser = getParseFn(input);
|
|
204
|
-
return createNewBuilder(_def, {
|
|
205
|
-
inputs: [
|
|
206
|
-
input
|
|
207
|
-
],
|
|
208
|
-
middlewares: [
|
|
209
|
-
createInputMiddleware(parser)
|
|
210
|
-
]
|
|
211
|
-
});
|
|
212
|
-
},
|
|
213
|
-
output (output) {
|
|
214
|
-
const parser = getParseFn(output);
|
|
215
|
-
return createNewBuilder(_def, {
|
|
216
|
-
output,
|
|
217
|
-
middlewares: [
|
|
218
|
-
createOutputMiddleware(parser)
|
|
219
|
-
]
|
|
220
|
-
});
|
|
221
|
-
},
|
|
222
|
-
meta (meta) {
|
|
223
|
-
return createNewBuilder(_def, {
|
|
224
|
-
meta
|
|
225
|
-
});
|
|
226
|
-
},
|
|
227
|
-
use (middlewareBuilderOrFn) {
|
|
228
|
-
// Distinguish between a middleware builder and a middleware function
|
|
229
|
-
const middlewares = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
|
|
230
|
-
middlewareBuilderOrFn
|
|
231
|
-
];
|
|
232
|
-
return createNewBuilder(_def, {
|
|
233
|
-
middlewares: middlewares
|
|
234
|
-
});
|
|
235
|
-
},
|
|
236
|
-
query (resolver) {
|
|
237
|
-
return createResolver({
|
|
238
|
-
..._def,
|
|
239
|
-
type: 'query'
|
|
240
|
-
}, resolver);
|
|
241
|
-
},
|
|
242
|
-
mutation (resolver) {
|
|
243
|
-
return createResolver({
|
|
244
|
-
..._def,
|
|
245
|
-
type: 'mutation'
|
|
246
|
-
}, resolver);
|
|
247
|
-
},
|
|
248
|
-
subscription (resolver) {
|
|
249
|
-
return createResolver({
|
|
250
|
-
..._def,
|
|
251
|
-
type: 'subscription'
|
|
252
|
-
}, resolver);
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
return builder;
|
|
256
|
-
}
|
|
257
|
-
function createResolver(_def, resolver) {
|
|
258
|
-
const finalBuilder = createNewBuilder(_def, {
|
|
259
|
-
resolver,
|
|
260
|
-
middlewares: [
|
|
261
|
-
async function resolveMiddleware(opts) {
|
|
262
|
-
const data = await resolver(opts);
|
|
263
|
-
return {
|
|
264
|
-
marker: middlewareMarker,
|
|
265
|
-
ok: true,
|
|
266
|
-
data,
|
|
267
|
-
ctx: opts.ctx
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
]
|
|
271
|
-
});
|
|
272
|
-
return createProcedureCaller(finalBuilder._def);
|
|
273
|
-
}
|
|
274
|
-
const codeblock = `
|
|
275
|
-
This is a client-only function.
|
|
276
|
-
If you want to call this function on the server, see https://trpc.io/docs/server/server-side-calls
|
|
277
|
-
`.trim();
|
|
278
|
-
function createProcedureCaller(_def) {
|
|
279
|
-
async function procedure(opts) {
|
|
280
|
-
// is direct server-side call
|
|
281
|
-
if (!opts || !('getRawInput' in opts)) {
|
|
282
|
-
throw new Error(codeblock);
|
|
283
|
-
}
|
|
284
|
-
// run the middlewares recursively with the resolver as the last one
|
|
285
|
-
async function callRecursive(callOpts = {
|
|
286
|
-
index: 0,
|
|
287
|
-
ctx: opts.ctx
|
|
288
|
-
}) {
|
|
289
|
-
try {
|
|
290
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
291
|
-
const middleware = _def.middlewares[callOpts.index];
|
|
292
|
-
const result = await middleware({
|
|
293
|
-
ctx: callOpts.ctx,
|
|
294
|
-
type: opts.type,
|
|
295
|
-
path: opts.path,
|
|
296
|
-
getRawInput: callOpts.getRawInput ?? opts.getRawInput,
|
|
297
|
-
meta: _def.meta,
|
|
298
|
-
input: callOpts.input,
|
|
299
|
-
next (_nextOpts) {
|
|
300
|
-
const nextOpts = _nextOpts;
|
|
301
|
-
return callRecursive({
|
|
302
|
-
index: callOpts.index + 1,
|
|
303
|
-
ctx: nextOpts && 'ctx' in nextOpts ? {
|
|
304
|
-
...callOpts.ctx,
|
|
305
|
-
...nextOpts.ctx
|
|
306
|
-
} : callOpts.ctx,
|
|
307
|
-
input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input,
|
|
308
|
-
getRawInput: nextOpts && 'getRawInput' in nextOpts ? nextOpts.getRawInput : callOpts.getRawInput
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
return result;
|
|
313
|
-
} catch (cause) {
|
|
314
|
-
return {
|
|
315
|
-
ok: false,
|
|
316
|
-
error: getTRPCErrorFromUnknown(cause),
|
|
317
|
-
marker: middlewareMarker
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
// there's always at least one "next" since we wrap this.resolver in a middleware
|
|
322
|
-
const result = await callRecursive();
|
|
323
|
-
if (!result) {
|
|
324
|
-
throw new TRPCError({
|
|
325
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
326
|
-
message: 'No result from middlewares - did you forget to `return next()`?'
|
|
327
|
-
});
|
|
328
|
-
}
|
|
329
|
-
if (!result.ok) {
|
|
330
|
-
// re-throw original error
|
|
331
|
-
throw result.error;
|
|
332
|
-
}
|
|
333
|
-
return result.data;
|
|
334
|
-
}
|
|
335
|
-
procedure._def = _def;
|
|
336
|
-
// FIXME typecast shouldn't be needed - fixittt
|
|
337
|
-
return procedure;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
export { createMiddlewareFactory as a, createInputMiddleware as b, createBuilder as c, createOutputMiddleware as d, experimental_standaloneMiddleware as e, middlewareMarker as f, mergeRouters as m, unsetMarker as u };
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import { e as callProcedure } from './router-f9ce121f.mjs';
|
|
2
|
-
import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
|
|
3
|
-
import './config-50853f49.mjs';
|
|
4
|
-
import { t as transformTRPCResponse, g as getHTTPStatusCode, a as getErrorShape } from './transformTRPCResponse-31040a38.mjs';
|
|
5
|
-
import { g as getJsonContentTypeInputs } from './contentType-31223e57.mjs';
|
|
6
|
-
|
|
7
|
-
const HTTP_METHOD_PROCEDURE_TYPE_MAP = {
|
|
8
|
-
GET: 'query',
|
|
9
|
-
POST: 'mutation'
|
|
10
|
-
};
|
|
11
|
-
const fallbackContentTypeHandler = {
|
|
12
|
-
getInputs: getJsonContentTypeInputs
|
|
13
|
-
};
|
|
14
|
-
function initResponse(initOpts) {
|
|
15
|
-
const { ctx , paths , type , responseMeta , untransformedJSON , errors =[] , } = initOpts;
|
|
16
|
-
let status = untransformedJSON ? getHTTPStatusCode(untransformedJSON) : 200;
|
|
17
|
-
const headers = {
|
|
18
|
-
'Content-Type': 'application/json'
|
|
19
|
-
};
|
|
20
|
-
const eagerGeneration = !untransformedJSON;
|
|
21
|
-
const data = eagerGeneration ? [] : Array.isArray(untransformedJSON) ? untransformedJSON : [
|
|
22
|
-
untransformedJSON
|
|
23
|
-
];
|
|
24
|
-
const meta = responseMeta?.({
|
|
25
|
-
ctx,
|
|
26
|
-
paths,
|
|
27
|
-
type,
|
|
28
|
-
data,
|
|
29
|
-
errors,
|
|
30
|
-
eagerGeneration
|
|
31
|
-
}) ?? {};
|
|
32
|
-
for (const [key, value] of Object.entries(meta.headers ?? {})){
|
|
33
|
-
headers[key] = value;
|
|
34
|
-
}
|
|
35
|
-
if (meta.status) {
|
|
36
|
-
status = meta.status;
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
status,
|
|
40
|
-
headers
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
async function inputToProcedureCall(procedureOpts) {
|
|
44
|
-
const { opts , ctx , type , input , path } = procedureOpts;
|
|
45
|
-
try {
|
|
46
|
-
const data = await callProcedure({
|
|
47
|
-
procedures: opts.router._def.procedures,
|
|
48
|
-
path,
|
|
49
|
-
getRawInput: async ()=>input,
|
|
50
|
-
ctx,
|
|
51
|
-
type
|
|
52
|
-
});
|
|
53
|
-
return {
|
|
54
|
-
result: {
|
|
55
|
-
data
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
} catch (cause) {
|
|
59
|
-
const error = getTRPCErrorFromUnknown(cause);
|
|
60
|
-
opts.onError?.({
|
|
61
|
-
error,
|
|
62
|
-
path,
|
|
63
|
-
input,
|
|
64
|
-
ctx,
|
|
65
|
-
type: type,
|
|
66
|
-
req: opts.req
|
|
67
|
-
});
|
|
68
|
-
return {
|
|
69
|
-
error: getErrorShape({
|
|
70
|
-
config: opts.router._def._config,
|
|
71
|
-
error,
|
|
72
|
-
type,
|
|
73
|
-
path,
|
|
74
|
-
input,
|
|
75
|
-
ctx
|
|
76
|
-
})
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function caughtErrorToData(cause, errorOpts) {
|
|
81
|
-
const { router , req , onError } = errorOpts.opts;
|
|
82
|
-
const error = getTRPCErrorFromUnknown(cause);
|
|
83
|
-
onError?.({
|
|
84
|
-
error,
|
|
85
|
-
path: errorOpts.path,
|
|
86
|
-
input: errorOpts.input,
|
|
87
|
-
ctx: errorOpts.ctx,
|
|
88
|
-
type: errorOpts.type,
|
|
89
|
-
req
|
|
90
|
-
});
|
|
91
|
-
const untransformedJSON = {
|
|
92
|
-
error: getErrorShape({
|
|
93
|
-
config: router._def._config,
|
|
94
|
-
error,
|
|
95
|
-
type: errorOpts.type,
|
|
96
|
-
path: errorOpts.path,
|
|
97
|
-
input: errorOpts.input,
|
|
98
|
-
ctx: errorOpts.ctx
|
|
99
|
-
})
|
|
100
|
-
};
|
|
101
|
-
const transformedJSON = transformTRPCResponse(router._def._config, untransformedJSON);
|
|
102
|
-
const body = JSON.stringify(transformedJSON);
|
|
103
|
-
return {
|
|
104
|
-
error,
|
|
105
|
-
untransformedJSON,
|
|
106
|
-
body
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
// implementation
|
|
110
|
-
async function resolveHTTPResponse(opts) {
|
|
111
|
-
const { router , req , unstable_onHead , unstable_onChunk } = opts;
|
|
112
|
-
if (req.method === 'HEAD') {
|
|
113
|
-
// can be used for lambda warmup
|
|
114
|
-
const headResponse = {
|
|
115
|
-
status: 204
|
|
116
|
-
};
|
|
117
|
-
unstable_onHead?.(headResponse, false);
|
|
118
|
-
unstable_onChunk?.([
|
|
119
|
-
-1,
|
|
120
|
-
''
|
|
121
|
-
]);
|
|
122
|
-
return headResponse;
|
|
123
|
-
}
|
|
124
|
-
const contentTypeHandler = opts.contentTypeHandler ?? fallbackContentTypeHandler;
|
|
125
|
-
const batchingEnabled = opts.batching?.enabled ?? true;
|
|
126
|
-
const type = HTTP_METHOD_PROCEDURE_TYPE_MAP[req.method] ?? 'unknown';
|
|
127
|
-
let ctx = undefined;
|
|
128
|
-
let paths;
|
|
129
|
-
const isBatchCall = !!req.query.get('batch');
|
|
130
|
-
const isStreamCall = isBatchCall && unstable_onHead && unstable_onChunk && req.headers['trpc-batch-mode'] === 'stream';
|
|
131
|
-
try {
|
|
132
|
-
if (opts.error) {
|
|
133
|
-
throw opts.error;
|
|
134
|
-
}
|
|
135
|
-
if (isBatchCall && !batchingEnabled) {
|
|
136
|
-
throw new Error(`Batching is not enabled on the server`);
|
|
137
|
-
}
|
|
138
|
-
/* istanbul ignore if -- @preserve */ if (type === 'subscription') {
|
|
139
|
-
throw new TRPCError({
|
|
140
|
-
message: 'Subscriptions should use wsLink',
|
|
141
|
-
code: 'METHOD_NOT_SUPPORTED'
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
if (type === 'unknown') {
|
|
145
|
-
throw new TRPCError({
|
|
146
|
-
message: `Unexpected request method ${req.method}`,
|
|
147
|
-
code: 'METHOD_NOT_SUPPORTED'
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
const inputs = await contentTypeHandler.getInputs({
|
|
151
|
-
isBatchCall,
|
|
152
|
-
req,
|
|
153
|
-
router,
|
|
154
|
-
preprocessedBody: opts.preprocessedBody ?? false
|
|
155
|
-
});
|
|
156
|
-
paths = isBatchCall ? decodeURIComponent(opts.path).split(',') : [
|
|
157
|
-
opts.path
|
|
158
|
-
];
|
|
159
|
-
const info = {
|
|
160
|
-
isBatchCall,
|
|
161
|
-
calls: paths.map((path, idx)=>({
|
|
162
|
-
path,
|
|
163
|
-
type,
|
|
164
|
-
input: inputs[idx] ?? undefined
|
|
165
|
-
}))
|
|
166
|
-
};
|
|
167
|
-
ctx = await opts.createContext({
|
|
168
|
-
info
|
|
169
|
-
});
|
|
170
|
-
const promises = paths.map((path, index)=>inputToProcedureCall({
|
|
171
|
-
opts,
|
|
172
|
-
ctx,
|
|
173
|
-
type,
|
|
174
|
-
input: inputs[index],
|
|
175
|
-
path
|
|
176
|
-
}));
|
|
177
|
-
if (!isStreamCall) {
|
|
178
|
-
/**
|
|
179
|
-
* Non-streaming response:
|
|
180
|
-
* - await all responses in parallel, blocking on the slowest one
|
|
181
|
-
* - create headers with known response body
|
|
182
|
-
* - return a complete HTTPResponse
|
|
183
|
-
*/ const untransformedJSON = await Promise.all(promises);
|
|
184
|
-
const errors = untransformedJSON.flatMap((response)=>'error' in response ? [
|
|
185
|
-
response.error
|
|
186
|
-
] : []);
|
|
187
|
-
const headResponse1 = initResponse({
|
|
188
|
-
ctx,
|
|
189
|
-
paths,
|
|
190
|
-
type,
|
|
191
|
-
responseMeta: opts.responseMeta,
|
|
192
|
-
untransformedJSON,
|
|
193
|
-
errors
|
|
194
|
-
});
|
|
195
|
-
unstable_onHead?.(headResponse1, false);
|
|
196
|
-
// return body stuff
|
|
197
|
-
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
|
|
198
|
-
const transformedJSON = transformTRPCResponse(router._def._config, result);
|
|
199
|
-
const body = JSON.stringify(transformedJSON);
|
|
200
|
-
unstable_onChunk?.([
|
|
201
|
-
-1,
|
|
202
|
-
body
|
|
203
|
-
]);
|
|
204
|
-
return {
|
|
205
|
-
status: headResponse1.status,
|
|
206
|
-
headers: headResponse1.headers,
|
|
207
|
-
body
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Streaming response:
|
|
212
|
-
* - block on none, call `onChunk` as soon as each response is ready
|
|
213
|
-
* - create headers with minimal data (cannot know the response body in advance)
|
|
214
|
-
* - return void
|
|
215
|
-
*/ const headResponse2 = initResponse({
|
|
216
|
-
ctx,
|
|
217
|
-
paths,
|
|
218
|
-
type,
|
|
219
|
-
responseMeta: opts.responseMeta
|
|
220
|
-
});
|
|
221
|
-
unstable_onHead(headResponse2, true);
|
|
222
|
-
const indexedPromises = new Map(promises.map((promise, index)=>[
|
|
223
|
-
index,
|
|
224
|
-
promise.then((r)=>[
|
|
225
|
-
index,
|
|
226
|
-
r
|
|
227
|
-
])
|
|
228
|
-
]));
|
|
229
|
-
for (const _ of paths){
|
|
230
|
-
const [index, untransformedJSON1] = await Promise.race(indexedPromises.values());
|
|
231
|
-
indexedPromises.delete(index);
|
|
232
|
-
try {
|
|
233
|
-
const transformedJSON1 = transformTRPCResponse(router._def._config, untransformedJSON1);
|
|
234
|
-
const body1 = JSON.stringify(transformedJSON1);
|
|
235
|
-
unstable_onChunk([
|
|
236
|
-
index,
|
|
237
|
-
body1
|
|
238
|
-
]);
|
|
239
|
-
} catch (cause) {
|
|
240
|
-
const path = paths[index];
|
|
241
|
-
const input = inputs[index];
|
|
242
|
-
const { body: body2 } = caughtErrorToData(cause, {
|
|
243
|
-
opts,
|
|
244
|
-
ctx,
|
|
245
|
-
type,
|
|
246
|
-
path,
|
|
247
|
-
input
|
|
248
|
-
});
|
|
249
|
-
unstable_onChunk([
|
|
250
|
-
index,
|
|
251
|
-
body2
|
|
252
|
-
]);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return;
|
|
256
|
-
} catch (cause1) {
|
|
257
|
-
// we get here if
|
|
258
|
-
// - batching is called when it's not enabled
|
|
259
|
-
// - `createContext()` throws
|
|
260
|
-
// - `router._def._config.transformer.output.serialize()` throws
|
|
261
|
-
// - post body is too large
|
|
262
|
-
// - input deserialization fails
|
|
263
|
-
// - `errorFormatter` return value is malformed
|
|
264
|
-
const { error , untransformedJSON: untransformedJSON2 , body: body3 } = caughtErrorToData(cause1, {
|
|
265
|
-
opts,
|
|
266
|
-
ctx,
|
|
267
|
-
type
|
|
268
|
-
});
|
|
269
|
-
const headResponse3 = initResponse({
|
|
270
|
-
ctx,
|
|
271
|
-
paths,
|
|
272
|
-
type,
|
|
273
|
-
responseMeta: opts.responseMeta,
|
|
274
|
-
untransformedJSON: untransformedJSON2,
|
|
275
|
-
errors: [
|
|
276
|
-
error
|
|
277
|
-
]
|
|
278
|
-
});
|
|
279
|
-
unstable_onHead?.(headResponse3, false);
|
|
280
|
-
unstable_onChunk?.([
|
|
281
|
-
-1,
|
|
282
|
-
body3
|
|
283
|
-
]);
|
|
284
|
-
return {
|
|
285
|
-
status: headResponse3.status,
|
|
286
|
-
headers: headResponse3.headers,
|
|
287
|
-
body: body3
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
export { resolveHTTPResponse as r };
|