@trpc/server 10.27.3 → 10.28.1
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/{TRPCError-61026c9a.js → TRPCError-7c3909ea.js} +47 -47
- package/dist/adapters/aws-lambda/index.d.ts +9 -9
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +4 -4
- package/dist/adapters/aws-lambda/index.mjs +4 -4
- package/dist/adapters/aws-lambda/utils.d.ts +37 -37
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/express.d.ts +5 -5
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +5 -5
- package/dist/adapters/express.mjs +5 -5
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +12 -12
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +11 -11
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.d.ts +2 -2
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/fastify/index.mjs +4 -4
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +7 -7
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.d.ts +2 -2
- package/dist/adapters/fetch/index.js +4 -4
- package/dist/adapters/fetch/index.mjs +4 -4
- package/dist/adapters/fetch/types.d.ts +19 -19
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/lambda/index.d.ts +11 -11
- package/dist/adapters/lambda/index.d.ts.map +1 -1
- package/dist/adapters/next.d.ts +5 -5
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +5 -5
- package/dist/adapters/next.mjs +5 -5
- package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts +69 -69
- package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/index.d.ts +23 -23
- package/dist/adapters/node-http/content-type/form-data/index.js +1 -3
- package/dist/adapters/node-http/content-type/form-data/index.mjs +1 -3
- package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts +30 -30
- package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +10 -10
- package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +40 -39
- package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +6 -6
- package/dist/adapters/node-http/content-type/json/index.d.ts +1 -1
- package/dist/adapters/node-http/index.d.ts +2 -2
- package/dist/adapters/node-http/index.js +5 -5
- package/dist/adapters/node-http/index.mjs +5 -5
- package/dist/adapters/node-http/internals/contentType.d.ts +8 -8
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +3 -3
- package/dist/adapters/node-http/types.d.ts +63 -63
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +13 -13
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -5
- package/dist/adapters/standalone.mjs +5 -5
- package/dist/adapters/ws.d.ts +21 -21
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +3 -3
- package/dist/adapters/ws.mjs +3 -3
- package/dist/{codes-b3c262d8.js → codes-1c9ad84e.js} +44 -44
- package/dist/{config-91ab0b1d.js → config-54786004.js} +168 -192
- package/dist/{config-d1cf9de0.mjs → config-65c5b6d1.mjs} +5 -28
- package/dist/{config-f355c4d8.js → config-f3ce0144.js} +5 -28
- package/dist/{contentType-f27e4bfc.js → contentType-24c44bba.js} +2 -2
- package/dist/{contentType-a75c990c.js → contentType-7354963c.js} +54 -54
- package/dist/core/index.d.ts +8 -8
- package/dist/core/initTRPC.d.ts +104 -104
- package/dist/core/initTRPC.d.ts.map +1 -1
- package/dist/core/internals/config.d.ts +74 -74
- package/dist/core/internals/config.d.ts.map +1 -1
- package/dist/core/internals/getParseFn.d.ts +8 -8
- package/dist/core/internals/getParseFn.d.ts.map +1 -1
- package/dist/core/internals/mergeRouters.d.ts +17 -17
- package/dist/core/internals/mergeRouters.d.ts.map +1 -1
- package/dist/core/internals/mergeWithoutOverrides.d.ts +4 -4
- package/dist/core/internals/omitPrototype.d.ts +5 -5
- package/dist/core/internals/procedureBuilder.d.ts +115 -115
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/core/internals/utils.d.ts +51 -51
- package/dist/core/internals/utils.d.ts.map +1 -1
- package/dist/core/middleware.d.ts +127 -127
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/core/parser.d.ts +27 -27
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/procedure.d.ts +72 -72
- package/dist/core/procedure.d.ts.map +1 -1
- package/dist/core/router.d.ts +111 -111
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/types.d.ts +28 -28
- package/dist/core/types.d.ts.map +1 -1
- package/dist/deprecated/internals/middlewares.d.ts +51 -51
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -1
- package/dist/deprecated/internals/procedure.d.ts +95 -95
- package/dist/deprecated/internals/procedure.d.ts.map +1 -1
- package/dist/deprecated/interop.d.ts +43 -43
- package/dist/deprecated/interop.d.ts.map +1 -1
- package/dist/deprecated/router.d.ts +203 -203
- package/dist/deprecated/router.d.ts.map +1 -1
- package/dist/error/TRPCError.d.ts +11 -11
- package/dist/error/formatter.d.ts +32 -32
- package/dist/error/formatter.d.ts.map +1 -1
- package/dist/error/utils.d.ts +5 -5
- package/dist/http/contentType.d.ts +28 -28
- package/dist/http/contentType.d.ts.map +1 -1
- package/dist/http/getHTTPStatusCode.d.ts +23 -23
- package/dist/http/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/index.d.ts +3 -3
- package/dist/http/index.js +4 -4
- package/dist/http/index.mjs +4 -4
- package/dist/http/internals/types.d.ts +24 -24
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +16 -16
- package/dist/http/types.d.ts +24 -24
- package/dist/{index-315a9f08.mjs → index-044a193b.mjs} +3 -2
- package/dist/{index-8e243a74.js → index-4a823936.js} +3 -2
- package/dist/{index-cddfa242.js → index-ca9a128e.js} +88 -87
- package/dist/index.d.ts +6 -6
- package/dist/index.js +2 -2
- package/dist/index.mjs +3 -3
- package/dist/internals/invert.d.ts +11 -11
- package/dist/internals/invert.d.ts.map +1 -1
- package/dist/internals/types.d.ts +25 -25
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/internals.d.ts +9 -9
- package/dist/{nodeHTTPRequestHandler-8a261b10.mjs → nodeHTTPRequestHandler-0f979796.mjs} +1 -1
- package/dist/{nodeHTTPRequestHandler-7762c7d4.js → nodeHTTPRequestHandler-5bbf93f1.js} +1 -1
- package/dist/{nodeHTTPRequestHandler-fc509b47.js → nodeHTTPRequestHandler-bd47641d.js} +62 -62
- package/dist/observable/index.d.ts +4 -4
- package/dist/observable/internals/identity.d.ts +1 -1
- package/dist/observable/internals/observableToPromise.d.ts +9 -9
- package/dist/observable/internals/pipe.d.ts +3 -3
- package/dist/observable/observable.d.ts +4 -4
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/observable/operators/index.d.ts +3 -3
- package/dist/observable/operators/map.d.ts +2 -2
- package/dist/observable/operators/share.d.ts +5 -5
- package/dist/observable/operators/tap.d.ts +2 -2
- package/dist/observable/types.d.ts +28 -28
- package/dist/observable/types.d.ts.map +1 -1
- package/dist/{observable-a1c2103f.js → observable-15588f28.js} +76 -76
- package/dist/{resolveHTTPResponse-36f4e729.mjs → resolveHTTPResponse-4e576698.mjs} +3 -3
- package/dist/{resolveHTTPResponse-27fe1108.js → resolveHTTPResponse-9523b4e3.js} +3 -3
- package/dist/{resolveHTTPResponse-5f8945d7.js → resolveHTTPResponse-ba557d3e.js} +162 -162
- package/dist/rpc/codes.d.ts +52 -52
- package/dist/rpc/codes.d.ts.map +1 -1
- package/dist/rpc/envelopes.d.ts +98 -98
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.d.ts +2 -2
- package/dist/shared/createProxy/index.d.ts +18 -18
- package/dist/shared/createProxy/index.d.ts.map +1 -1
- package/dist/shared/getErrorShape.d.ts +14 -14
- package/dist/shared/index.d.ts +5 -5
- package/dist/shared/index.js +2 -2
- package/dist/shared/index.mjs +2 -2
- package/dist/shared/internal/serialize.d.ts +29 -29
- package/dist/shared/internal/serialize.d.ts.map +1 -1
- package/dist/shared/jsonify.d.ts +9 -9
- package/dist/shared/jsonify.d.ts.map +1 -1
- package/dist/shared/transformTRPCResponse.d.ts +8 -8
- package/dist/shared/transformTRPCResponse.d.ts.map +1 -1
- package/dist/subscription.d.ts +12 -12
- package/dist/{transformTRPCResponse-6887ae6d.mjs → transformTRPCResponse-3dca0b20.mjs} +1 -1
- package/dist/{transformTRPCResponse-f7b2ffd1.js → transformTRPCResponse-48d70ef6.js} +1 -1
- package/dist/{transformTRPCResponse-8cb7e890.js → transformTRPCResponse-7fcbe472.js} +48 -48
- package/dist/transformer.d.ts +73 -73
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +77 -77
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -6
- package/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts +3 -3
- package/src/adapters/node-http/content-type/form-data/uploadHandler.ts +3 -1
- package/src/core/router.ts +6 -41
- package/src/shared/createProxy/index.ts +3 -2
- package/src/adapters/node-http/content-type/json/getPostBody.test.ts +0 -49
- package/src/observable/observable.test.ts +0 -100
- package/src/observable/operators/map.test.ts +0 -91
- package/src/observable/operators/share.test.ts +0 -60
|
@@ -1,206 +1,182 @@
|
|
|
1
|
-
import { T as TRPCError } from './TRPCError-
|
|
2
|
-
import { a as createRecursiveProxy, g as getHTTPStatusCodeFromError } from './index-
|
|
3
|
-
import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-
|
|
1
|
+
import { T as TRPCError } from './TRPCError-7c3909ea.js';
|
|
2
|
+
import { a as createRecursiveProxy, g as getHTTPStatusCodeFromError } from './index-ca9a128e.js';
|
|
3
|
+
import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-1c9ad84e.js';
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
function getDataTransformer(transformer) {
|
|
9
|
-
if ('input' in transformer) {
|
|
10
|
-
return transformer;
|
|
11
|
-
}
|
|
12
|
-
return { input: transformer, output: transformer };
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
const defaultTransformer = {
|
|
18
|
-
_default: true,
|
|
19
|
-
input: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
20
|
-
output: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
function getDataTransformer(transformer) {
|
|
9
|
+
if ('input' in transformer) {
|
|
10
|
+
return transformer;
|
|
11
|
+
}
|
|
12
|
+
return { input: transformer, output: transformer };
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
const defaultTransformer = {
|
|
18
|
+
_default: true,
|
|
19
|
+
input: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
20
|
+
output: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
const defaultFormatter = ({ shape, }) => {
|
|
24
|
-
return shape;
|
|
23
|
+
const defaultFormatter = ({ shape, }) => {
|
|
24
|
+
return shape;
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Create an object without inheriting anything from `Object.prototype`
|
|
29
|
-
* @internal
|
|
30
|
-
*/
|
|
31
|
-
function omitPrototype(obj) {
|
|
32
|
-
return Object.assign(Object.create(null), obj);
|
|
27
|
+
/**
|
|
28
|
+
* Create an object without inheriting anything from `Object.prototype`
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
function omitPrototype(obj) {
|
|
32
|
+
return Object.assign(Object.create(null), obj);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
const procedureTypes = ['query', 'mutation', 'subscription'];
|
|
36
36
|
|
|
37
|
-
function isRouter(procedureOrRouter) {
|
|
38
|
-
return 'router' in procedureOrRouter._def;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
shape.data.stack = opts.error.stack;
|
|
172
|
-
}
|
|
173
|
-
if (typeof path === 'string') {
|
|
174
|
-
shape.data.path = path;
|
|
175
|
-
}
|
|
176
|
-
return this._def._config.errorFormatter({ ...opts, shape });
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
return router;
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* @internal
|
|
184
|
-
*/
|
|
185
|
-
function callProcedure(opts) {
|
|
186
|
-
const { type, path } = opts;
|
|
187
|
-
if (!(path in opts.procedures) || !opts.procedures[path]?._def[type]) {
|
|
188
|
-
throw new TRPCError({
|
|
189
|
-
code: 'NOT_FOUND',
|
|
190
|
-
message: `No "${type}"-procedure on path "${path}"`,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
const procedure = opts.procedures[path];
|
|
194
|
-
return procedure(opts);
|
|
37
|
+
function isRouter(procedureOrRouter) {
|
|
38
|
+
return 'router' in procedureOrRouter._def;
|
|
39
|
+
}
|
|
40
|
+
const emptyRouter = {
|
|
41
|
+
_ctx: null,
|
|
42
|
+
_errorShape: null,
|
|
43
|
+
_meta: null,
|
|
44
|
+
queries: {},
|
|
45
|
+
mutations: {},
|
|
46
|
+
subscriptions: {},
|
|
47
|
+
errorFormatter: defaultFormatter,
|
|
48
|
+
transformer: defaultTransformer,
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Reserved words that can't be used as router or procedure names
|
|
52
|
+
*/
|
|
53
|
+
const reservedWords = [
|
|
54
|
+
/**
|
|
55
|
+
* Then is a reserved word because otherwise we can't return a promise that returns a Proxy
|
|
56
|
+
* since JS will think that `.then` is something that exists
|
|
57
|
+
*/
|
|
58
|
+
'then',
|
|
59
|
+
];
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
function createRouterFactory(config) {
|
|
64
|
+
return function createRouterInner(procedures) {
|
|
65
|
+
const reservedWordsUsed = new Set(Object.keys(procedures).filter((v) => reservedWords.includes(v)));
|
|
66
|
+
if (reservedWordsUsed.size > 0) {
|
|
67
|
+
throw new Error('Reserved words used in `router({})` call: ' +
|
|
68
|
+
Array.from(reservedWordsUsed).join(', '));
|
|
69
|
+
}
|
|
70
|
+
const routerProcedures = omitPrototype({});
|
|
71
|
+
function recursiveGetPaths(procedures, path = '') {
|
|
72
|
+
for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})) {
|
|
73
|
+
const newPath = `${path}${key}`;
|
|
74
|
+
if (isRouter(procedureOrRouter)) {
|
|
75
|
+
recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (routerProcedures[newPath]) {
|
|
79
|
+
throw new Error(`Duplicate key: ${newPath}`);
|
|
80
|
+
}
|
|
81
|
+
routerProcedures[newPath] = procedureOrRouter;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
recursiveGetPaths(procedures);
|
|
85
|
+
const _def = {
|
|
86
|
+
_config: config,
|
|
87
|
+
router: true,
|
|
88
|
+
procedures: routerProcedures,
|
|
89
|
+
...emptyRouter,
|
|
90
|
+
record: procedures,
|
|
91
|
+
queries: Object.entries(routerProcedures)
|
|
92
|
+
.filter((pair) => pair[1]._def.query)
|
|
93
|
+
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
94
|
+
mutations: Object.entries(routerProcedures)
|
|
95
|
+
.filter((pair) => pair[1]._def.mutation)
|
|
96
|
+
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
97
|
+
subscriptions: Object.entries(routerProcedures)
|
|
98
|
+
.filter((pair) => pair[1]._def.subscription)
|
|
99
|
+
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
100
|
+
};
|
|
101
|
+
const router = {
|
|
102
|
+
...procedures,
|
|
103
|
+
_def,
|
|
104
|
+
createCaller(ctx) {
|
|
105
|
+
const proxy = createRecursiveProxy(({ path, args }) => {
|
|
106
|
+
// interop mode
|
|
107
|
+
if (path.length === 1 &&
|
|
108
|
+
procedureTypes.includes(path[0])) {
|
|
109
|
+
return callProcedure({
|
|
110
|
+
procedures: _def.procedures,
|
|
111
|
+
path: args[0],
|
|
112
|
+
rawInput: args[1],
|
|
113
|
+
ctx,
|
|
114
|
+
type: path[0],
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const fullPath = path.join('.');
|
|
118
|
+
const procedure = _def.procedures[fullPath];
|
|
119
|
+
let type = 'query';
|
|
120
|
+
if (procedure._def.mutation) {
|
|
121
|
+
type = 'mutation';
|
|
122
|
+
}
|
|
123
|
+
else if (procedure._def.subscription) {
|
|
124
|
+
type = 'subscription';
|
|
125
|
+
}
|
|
126
|
+
return procedure({
|
|
127
|
+
path: fullPath,
|
|
128
|
+
rawInput: args[0],
|
|
129
|
+
ctx,
|
|
130
|
+
type,
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
return proxy;
|
|
134
|
+
},
|
|
135
|
+
getErrorShape(opts) {
|
|
136
|
+
const { path, error } = opts;
|
|
137
|
+
const { code } = opts.error;
|
|
138
|
+
const shape = {
|
|
139
|
+
message: error.message,
|
|
140
|
+
code: TRPC_ERROR_CODES_BY_KEY[code],
|
|
141
|
+
data: {
|
|
142
|
+
code,
|
|
143
|
+
httpStatus: getHTTPStatusCodeFromError(error),
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
if (config.isDev && typeof opts.error.stack === 'string') {
|
|
147
|
+
shape.data.stack = opts.error.stack;
|
|
148
|
+
}
|
|
149
|
+
if (typeof path === 'string') {
|
|
150
|
+
shape.data.path = path;
|
|
151
|
+
}
|
|
152
|
+
return this._def._config.errorFormatter({ ...opts, shape });
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
return router;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
function callProcedure(opts) {
|
|
162
|
+
const { type, path } = opts;
|
|
163
|
+
if (!(path in opts.procedures) || !opts.procedures[path]?._def[type]) {
|
|
164
|
+
throw new TRPCError({
|
|
165
|
+
code: 'NOT_FOUND',
|
|
166
|
+
message: `No "${type}"-procedure on path "${path}"`,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
const procedure = opts.procedures[path];
|
|
170
|
+
return procedure(opts);
|
|
195
171
|
}
|
|
196
172
|
|
|
197
|
-
/**
|
|
198
|
-
* The default check to see if we're in a server
|
|
199
|
-
*/
|
|
200
|
-
const isServerDefault = typeof window === 'undefined' ||
|
|
201
|
-
'Deno' in window ||
|
|
202
|
-
globalThis.process?.env?.NODE_ENV === 'test' ||
|
|
203
|
-
!!globalThis.process?.env?.JEST_WORKER_ID ||
|
|
173
|
+
/**
|
|
174
|
+
* The default check to see if we're in a server
|
|
175
|
+
*/
|
|
176
|
+
const isServerDefault = typeof window === 'undefined' ||
|
|
177
|
+
'Deno' in window ||
|
|
178
|
+
globalThis.process?.env?.NODE_ENV === 'test' ||
|
|
179
|
+
!!globalThis.process?.env?.JEST_WORKER_ID ||
|
|
204
180
|
!!globalThis.process?.env?.VITEST_WORKER_ID;
|
|
205
181
|
|
|
206
182
|
export { defaultTransformer as a, callProcedure as b, createRouterFactory as c, defaultFormatter as d, getDataTransformer as g, isServerDefault as i, procedureTypes as p };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { T as TRPCError } from './TRPCError-2b10c8d2.mjs';
|
|
2
|
-
import { a as createRecursiveProxy, g as getHTTPStatusCodeFromError } from './index-
|
|
2
|
+
import { a as createRecursiveProxy, g as getHTTPStatusCodeFromError } from './index-044a193b.mjs';
|
|
3
3
|
import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-24aa1ce1.mjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -49,9 +49,6 @@ const procedureTypes = [
|
|
|
49
49
|
function isRouter(procedureOrRouter) {
|
|
50
50
|
return 'router' in procedureOrRouter._def;
|
|
51
51
|
}
|
|
52
|
-
function isNestedRouter(procedureOrRouter) {
|
|
53
|
-
return !('_def' in procedureOrRouter);
|
|
54
|
-
}
|
|
55
52
|
const emptyRouter = {
|
|
56
53
|
_ctx: null,
|
|
57
54
|
_errorShape: null,
|
|
@@ -68,10 +65,7 @@ const emptyRouter = {
|
|
|
68
65
|
/**
|
|
69
66
|
* Then is a reserved word because otherwise we can't return a promise that returns a Proxy
|
|
70
67
|
* since JS will think that `.then` is something that exists
|
|
71
|
-
*/ 'then'
|
|
72
|
-
/**
|
|
73
|
-
* `_def` is a reserved word because it's used internally a lot
|
|
74
|
-
*/ '_def'
|
|
68
|
+
*/ 'then'
|
|
75
69
|
];
|
|
76
70
|
/**
|
|
77
71
|
* @internal
|
|
@@ -81,27 +75,10 @@ const emptyRouter = {
|
|
|
81
75
|
if (reservedWordsUsed.size > 0) {
|
|
82
76
|
throw new Error('Reserved words used in `router({})` call: ' + Array.from(reservedWordsUsed).join(', '));
|
|
83
77
|
}
|
|
84
|
-
const newProcedures = {};
|
|
85
|
-
for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})){
|
|
86
|
-
const value = procedures[key] ?? {};
|
|
87
|
-
if (isNestedRouter(value)) {
|
|
88
|
-
newProcedures[key] = createRouterInner(value);
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
if (isRouter(value)) {
|
|
92
|
-
newProcedures[key] = procedureOrRouter;
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
newProcedures[key] = procedureOrRouter;
|
|
96
|
-
}
|
|
97
78
|
const routerProcedures = omitPrototype({});
|
|
98
79
|
function recursiveGetPaths(procedures, path = '') {
|
|
99
80
|
for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})){
|
|
100
81
|
const newPath = `${path}${key}`;
|
|
101
|
-
if (isNestedRouter(procedureOrRouter)) {
|
|
102
|
-
recursiveGetPaths(procedureOrRouter, `${newPath}.`);
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
82
|
if (isRouter(procedureOrRouter)) {
|
|
106
83
|
recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
|
|
107
84
|
continue;
|
|
@@ -112,13 +89,13 @@ const emptyRouter = {
|
|
|
112
89
|
routerProcedures[newPath] = procedureOrRouter;
|
|
113
90
|
}
|
|
114
91
|
}
|
|
115
|
-
recursiveGetPaths(
|
|
92
|
+
recursiveGetPaths(procedures);
|
|
116
93
|
const _def = {
|
|
117
94
|
_config: config,
|
|
118
95
|
router: true,
|
|
119
96
|
procedures: routerProcedures,
|
|
120
97
|
...emptyRouter,
|
|
121
|
-
record:
|
|
98
|
+
record: procedures,
|
|
122
99
|
queries: Object.entries(routerProcedures).filter((pair)=>pair[1]._def.query).reduce((acc, [key, val])=>({
|
|
123
100
|
...acc,
|
|
124
101
|
[key]: val
|
|
@@ -133,7 +110,7 @@ const emptyRouter = {
|
|
|
133
110
|
}), {})
|
|
134
111
|
};
|
|
135
112
|
const router = {
|
|
136
|
-
...
|
|
113
|
+
...procedures,
|
|
137
114
|
_def,
|
|
138
115
|
createCaller (ctx) {
|
|
139
116
|
const proxy = createRecursiveProxy(({ path , args })=>{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var TRPCError = require('./TRPCError-16b2e52d.js');
|
|
4
|
-
var index = require('./index-
|
|
4
|
+
var index = require('./index-4a823936.js');
|
|
5
5
|
var codes = require('./codes-0eeb600d.js');
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -51,9 +51,6 @@ const procedureTypes = [
|
|
|
51
51
|
function isRouter(procedureOrRouter) {
|
|
52
52
|
return 'router' in procedureOrRouter._def;
|
|
53
53
|
}
|
|
54
|
-
function isNestedRouter(procedureOrRouter) {
|
|
55
|
-
return !('_def' in procedureOrRouter);
|
|
56
|
-
}
|
|
57
54
|
const emptyRouter = {
|
|
58
55
|
_ctx: null,
|
|
59
56
|
_errorShape: null,
|
|
@@ -70,10 +67,7 @@ const emptyRouter = {
|
|
|
70
67
|
/**
|
|
71
68
|
* Then is a reserved word because otherwise we can't return a promise that returns a Proxy
|
|
72
69
|
* since JS will think that `.then` is something that exists
|
|
73
|
-
*/ 'then'
|
|
74
|
-
/**
|
|
75
|
-
* `_def` is a reserved word because it's used internally a lot
|
|
76
|
-
*/ '_def'
|
|
70
|
+
*/ 'then'
|
|
77
71
|
];
|
|
78
72
|
/**
|
|
79
73
|
* @internal
|
|
@@ -83,27 +77,10 @@ const emptyRouter = {
|
|
|
83
77
|
if (reservedWordsUsed.size > 0) {
|
|
84
78
|
throw new Error('Reserved words used in `router({})` call: ' + Array.from(reservedWordsUsed).join(', '));
|
|
85
79
|
}
|
|
86
|
-
const newProcedures = {};
|
|
87
|
-
for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})){
|
|
88
|
-
const value = procedures[key] ?? {};
|
|
89
|
-
if (isNestedRouter(value)) {
|
|
90
|
-
newProcedures[key] = createRouterInner(value);
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
if (isRouter(value)) {
|
|
94
|
-
newProcedures[key] = procedureOrRouter;
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
newProcedures[key] = procedureOrRouter;
|
|
98
|
-
}
|
|
99
80
|
const routerProcedures = omitPrototype({});
|
|
100
81
|
function recursiveGetPaths(procedures, path = '') {
|
|
101
82
|
for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})){
|
|
102
83
|
const newPath = `${path}${key}`;
|
|
103
|
-
if (isNestedRouter(procedureOrRouter)) {
|
|
104
|
-
recursiveGetPaths(procedureOrRouter, `${newPath}.`);
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
84
|
if (isRouter(procedureOrRouter)) {
|
|
108
85
|
recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
|
|
109
86
|
continue;
|
|
@@ -114,13 +91,13 @@ const emptyRouter = {
|
|
|
114
91
|
routerProcedures[newPath] = procedureOrRouter;
|
|
115
92
|
}
|
|
116
93
|
}
|
|
117
|
-
recursiveGetPaths(
|
|
94
|
+
recursiveGetPaths(procedures);
|
|
118
95
|
const _def = {
|
|
119
96
|
_config: config,
|
|
120
97
|
router: true,
|
|
121
98
|
procedures: routerProcedures,
|
|
122
99
|
...emptyRouter,
|
|
123
|
-
record:
|
|
100
|
+
record: procedures,
|
|
124
101
|
queries: Object.entries(routerProcedures).filter((pair)=>pair[1]._def.query).reduce((acc, [key, val])=>({
|
|
125
102
|
...acc,
|
|
126
103
|
[key]: val
|
|
@@ -135,7 +112,7 @@ const emptyRouter = {
|
|
|
135
112
|
}), {})
|
|
136
113
|
};
|
|
137
114
|
const router = {
|
|
138
|
-
...
|
|
115
|
+
...procedures,
|
|
139
116
|
_def,
|
|
140
117
|
createCaller (ctx) {
|
|
141
118
|
const proxy = index.createRecursiveProxy(({ path , args })=>{
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { T as TRPCError, g as getCauseFromUnknown } from './TRPCError-
|
|
1
|
+
import { T as TRPCError, g as getCauseFromUnknown } from './TRPCError-7c3909ea.js';
|
|
2
2
|
|
|
3
|
-
function getRawProcedureInputOrThrow(opts) {
|
|
4
|
-
const { req } = opts;
|
|
5
|
-
try {
|
|
6
|
-
if (req.method === 'GET') {
|
|
7
|
-
if (!req.query.has('input')) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const raw = req.query.get('input');
|
|
11
|
-
return JSON.parse(raw);
|
|
12
|
-
}
|
|
13
|
-
if (!opts.preprocessedBody && typeof req.body === 'string') {
|
|
14
|
-
// A mutation with no inputs will have req.body === ''
|
|
15
|
-
return req.body.length === 0 ? undefined : JSON.parse(req.body);
|
|
16
|
-
}
|
|
17
|
-
return req.body;
|
|
18
|
-
}
|
|
19
|
-
catch (err) {
|
|
20
|
-
throw new TRPCError({
|
|
21
|
-
code: 'PARSE_ERROR',
|
|
22
|
-
cause: getCauseFromUnknown(err),
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const deserializeInputValue = (rawValue, transformer) => {
|
|
27
|
-
return typeof rawValue !== 'undefined'
|
|
28
|
-
? transformer.input.deserialize(rawValue)
|
|
29
|
-
: rawValue;
|
|
30
|
-
};
|
|
31
|
-
const getJsonContentTypeInputs = (opts) => {
|
|
32
|
-
const rawInput = getRawProcedureInputOrThrow(opts);
|
|
33
|
-
const transformer = opts.router._def._config.transformer;
|
|
34
|
-
if (!opts.isBatchCall) {
|
|
35
|
-
return {
|
|
36
|
-
0: deserializeInputValue(rawInput, transformer),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/* istanbul ignore if */
|
|
40
|
-
if (rawInput == null ||
|
|
41
|
-
typeof rawInput !== 'object' ||
|
|
42
|
-
Array.isArray(rawInput)) {
|
|
43
|
-
throw new TRPCError({
|
|
44
|
-
code: 'BAD_REQUEST',
|
|
45
|
-
message: '"input" needs to be an object when doing a batch call',
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
const input = {};
|
|
49
|
-
for (const key in rawInput) {
|
|
50
|
-
const k = key;
|
|
51
|
-
const rawValue = rawInput[k];
|
|
52
|
-
const value = deserializeInputValue(rawValue, transformer);
|
|
53
|
-
input[k] = value;
|
|
54
|
-
}
|
|
55
|
-
return input;
|
|
3
|
+
function getRawProcedureInputOrThrow(opts) {
|
|
4
|
+
const { req } = opts;
|
|
5
|
+
try {
|
|
6
|
+
if (req.method === 'GET') {
|
|
7
|
+
if (!req.query.has('input')) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const raw = req.query.get('input');
|
|
11
|
+
return JSON.parse(raw);
|
|
12
|
+
}
|
|
13
|
+
if (!opts.preprocessedBody && typeof req.body === 'string') {
|
|
14
|
+
// A mutation with no inputs will have req.body === ''
|
|
15
|
+
return req.body.length === 0 ? undefined : JSON.parse(req.body);
|
|
16
|
+
}
|
|
17
|
+
return req.body;
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
throw new TRPCError({
|
|
21
|
+
code: 'PARSE_ERROR',
|
|
22
|
+
cause: getCauseFromUnknown(err),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const deserializeInputValue = (rawValue, transformer) => {
|
|
27
|
+
return typeof rawValue !== 'undefined'
|
|
28
|
+
? transformer.input.deserialize(rawValue)
|
|
29
|
+
: rawValue;
|
|
30
|
+
};
|
|
31
|
+
const getJsonContentTypeInputs = (opts) => {
|
|
32
|
+
const rawInput = getRawProcedureInputOrThrow(opts);
|
|
33
|
+
const transformer = opts.router._def._config.transformer;
|
|
34
|
+
if (!opts.isBatchCall) {
|
|
35
|
+
return {
|
|
36
|
+
0: deserializeInputValue(rawInput, transformer),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/* istanbul ignore if */
|
|
40
|
+
if (rawInput == null ||
|
|
41
|
+
typeof rawInput !== 'object' ||
|
|
42
|
+
Array.isArray(rawInput)) {
|
|
43
|
+
throw new TRPCError({
|
|
44
|
+
code: 'BAD_REQUEST',
|
|
45
|
+
message: '"input" needs to be an object when doing a batch call',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const input = {};
|
|
49
|
+
for (const key in rawInput) {
|
|
50
|
+
const k = key;
|
|
51
|
+
const rawValue = rawInput[k];
|
|
52
|
+
const value = deserializeInputValue(rawValue, transformer);
|
|
53
|
+
input[k] = value;
|
|
54
|
+
}
|
|
55
|
+
return input;
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
export { getJsonContentTypeInputs as g };
|