@trpc/server 10.12.0 → 10.13.0
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-ef1ceb74.js +55 -0
- package/dist/adapters/aws-lambda/index.js +2 -2
- package/dist/adapters/aws-lambda/index.mjs +2 -2
- package/dist/adapters/express.js +3 -3
- package/dist/adapters/express.mjs +3 -3
- package/dist/adapters/fastify/index.js +3 -3
- package/dist/adapters/fastify/index.mjs +3 -3
- package/dist/adapters/fetch/index.js +3 -3
- package/dist/adapters/fetch/index.mjs +3 -3
- package/dist/adapters/next.js +3 -3
- package/dist/adapters/next.mjs +3 -3
- package/dist/adapters/node-http/index.js +3 -3
- package/dist/adapters/node-http/index.mjs +3 -3
- package/dist/adapters/standalone.js +3 -3
- package/dist/adapters/standalone.mjs +3 -3
- package/dist/adapters/ws.js +10 -10
- package/dist/adapters/ws.mjs +10 -10
- package/dist/codes-ec2bad91.js +45 -0
- package/dist/{config-d356ff77.js → config-cc5b2d45.js} +1 -1
- package/dist/{config-4ca0221b.mjs → config-cd794c2a.mjs} +1 -1
- package/dist/config-e8f70019.js +225 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/internals/config.d.ts.map +1 -1
- package/dist/core/internals/procedureBuilder.d.ts +3 -6
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/error/TRPCError.d.ts +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.mjs +2 -2
- package/dist/index-f38f12ba.js +47 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +2 -2
- package/dist/internals.d.ts +1 -1
- package/dist/internals.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-1fb01cee.mjs → nodeHTTPRequestHandler-85d2b636.mjs} +1 -1
- package/dist/{nodeHTTPRequestHandler-196730a5.js → nodeHTTPRequestHandler-a649e036.js} +1 -1
- package/dist/nodeHTTPRequestHandler-fa0b13d4.js +76 -0
- package/dist/observable-a1c2103f.js +83 -0
- package/dist/{resolveHTTPResponse-5e0173eb.js → resolveHTTPResponse-6cffb0ce.js} +3 -3
- package/dist/{resolveHTTPResponse-64517f5d.mjs → resolveHTTPResponse-7a4f75b3.mjs} +3 -3
- package/dist/resolveHTTPResponse-fed650e4.js +205 -0
- package/dist/subscription.js +3 -3
- package/dist/subscription.mjs +3 -3
- package/dist/transformTRPCResponse-896669e0.js +28 -0
- package/dist/transformer.d.ts +35 -8
- package/dist/transformer.d.ts.map +1 -1
- package/package.json +10 -14
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
- package/src/adapters/ws.ts +9 -9
- package/src/core/index.ts +1 -0
- package/src/core/internals/config.ts +2 -1
- package/src/core/internals/procedureBuilder.ts +9 -20
- package/src/http/resolveHTTPResponse.ts +2 -2
- package/src/internals.ts +1 -1
- package/src/observable/observable.test.ts +15 -15
- package/src/observable/operators/map.test.ts +2 -2
- package/src/observable/operators/share.test.ts +9 -9
- package/src/subscription.ts +3 -3
- package/src/transformer.ts +36 -8
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +0 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +0 -190
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +0 -7
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +0 -190
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +0 -186
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +0 -1
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +0 -109
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +0 -7
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +0 -109
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +0 -104
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +0 -202
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +0 -1
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +0 -306
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { T as TRPCError } from './TRPCError-ef1ceb74.js';
|
|
2
|
+
import { i as invert, T as TRPC_ERROR_CODES_BY_KEY } from './codes-ec2bad91.js';
|
|
3
|
+
import { a as createRecursiveProxy } from './index-f38f12ba.js';
|
|
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 },
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const defaultFormatter = ({ shape, }) => {
|
|
24
|
+
return shape;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const TRPC_ERROR_CODES_BY_NUMBER = invert(TRPC_ERROR_CODES_BY_KEY);
|
|
28
|
+
const JSONRPC2_TO_HTTP_CODE = {
|
|
29
|
+
PARSE_ERROR: 400,
|
|
30
|
+
BAD_REQUEST: 400,
|
|
31
|
+
NOT_FOUND: 404,
|
|
32
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
33
|
+
UNAUTHORIZED: 401,
|
|
34
|
+
FORBIDDEN: 403,
|
|
35
|
+
TIMEOUT: 408,
|
|
36
|
+
CONFLICT: 409,
|
|
37
|
+
CLIENT_CLOSED_REQUEST: 499,
|
|
38
|
+
PRECONDITION_FAILED: 412,
|
|
39
|
+
PAYLOAD_TOO_LARGE: 413,
|
|
40
|
+
METHOD_NOT_SUPPORTED: 405,
|
|
41
|
+
TOO_MANY_REQUESTS: 429,
|
|
42
|
+
};
|
|
43
|
+
function getStatusCodeFromKey(code) {
|
|
44
|
+
return JSONRPC2_TO_HTTP_CODE[code] ?? 500;
|
|
45
|
+
}
|
|
46
|
+
function getHTTPStatusCode(json) {
|
|
47
|
+
const arr = Array.isArray(json) ? json : [json];
|
|
48
|
+
const httpStatuses = new Set(arr.map((res) => {
|
|
49
|
+
if ('error' in res) {
|
|
50
|
+
const data = res.error.data;
|
|
51
|
+
if (typeof data.httpStatus === 'number') {
|
|
52
|
+
return data.httpStatus;
|
|
53
|
+
}
|
|
54
|
+
const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];
|
|
55
|
+
return getStatusCodeFromKey(code);
|
|
56
|
+
}
|
|
57
|
+
return 200;
|
|
58
|
+
}));
|
|
59
|
+
if (httpStatuses.size !== 1) {
|
|
60
|
+
return 207;
|
|
61
|
+
}
|
|
62
|
+
const httpStatus = httpStatuses.values().next().value;
|
|
63
|
+
return httpStatus;
|
|
64
|
+
}
|
|
65
|
+
function getHTTPStatusCodeFromError(error) {
|
|
66
|
+
const { code } = error;
|
|
67
|
+
return getStatusCodeFromKey(code);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Create an object without inheriting anything from `Object.prototype`
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
function omitPrototype(obj) {
|
|
75
|
+
return Object.assign(Object.create(null), obj);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const procedureTypes = ['query', 'mutation', 'subscription'];
|
|
79
|
+
|
|
80
|
+
function isRouter(procedureOrRouter) {
|
|
81
|
+
return 'router' in procedureOrRouter._def;
|
|
82
|
+
}
|
|
83
|
+
const emptyRouter = {
|
|
84
|
+
_ctx: null,
|
|
85
|
+
_errorShape: null,
|
|
86
|
+
_meta: null,
|
|
87
|
+
queries: {},
|
|
88
|
+
mutations: {},
|
|
89
|
+
subscriptions: {},
|
|
90
|
+
errorFormatter: defaultFormatter,
|
|
91
|
+
transformer: defaultTransformer,
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Reserved words that can't be used as router or procedure names
|
|
95
|
+
*/
|
|
96
|
+
const reservedWords = [
|
|
97
|
+
/**
|
|
98
|
+
* Then is a reserved word because otherwise we can't return a promise that returns a Proxy
|
|
99
|
+
* since JS will think that `.then` is something that exists
|
|
100
|
+
*/
|
|
101
|
+
'then',
|
|
102
|
+
];
|
|
103
|
+
/**
|
|
104
|
+
* @internal
|
|
105
|
+
*/
|
|
106
|
+
function createRouterFactory(config) {
|
|
107
|
+
return function createRouterInner(procedures) {
|
|
108
|
+
const reservedWordsUsed = new Set(Object.keys(procedures).filter((v) => reservedWords.includes(v)));
|
|
109
|
+
if (reservedWordsUsed.size > 0) {
|
|
110
|
+
throw new Error('Reserved words used in `router({})` call: ' +
|
|
111
|
+
Array.from(reservedWordsUsed).join(', '));
|
|
112
|
+
}
|
|
113
|
+
const routerProcedures = omitPrototype({});
|
|
114
|
+
function recursiveGetPaths(procedures, path = '') {
|
|
115
|
+
for (const [key, procedureOrRouter] of Object.entries(procedures ?? {})) {
|
|
116
|
+
const newPath = `${path}${key}`;
|
|
117
|
+
if (isRouter(procedureOrRouter)) {
|
|
118
|
+
recursiveGetPaths(procedureOrRouter._def.procedures, `${newPath}.`);
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (routerProcedures[newPath]) {
|
|
122
|
+
throw new Error(`Duplicate key: ${newPath}`);
|
|
123
|
+
}
|
|
124
|
+
routerProcedures[newPath] = procedureOrRouter;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
recursiveGetPaths(procedures);
|
|
128
|
+
const _def = {
|
|
129
|
+
_config: config,
|
|
130
|
+
router: true,
|
|
131
|
+
procedures: routerProcedures,
|
|
132
|
+
...emptyRouter,
|
|
133
|
+
record: procedures,
|
|
134
|
+
queries: Object.entries(routerProcedures)
|
|
135
|
+
.filter((pair) => pair[1]._def.query)
|
|
136
|
+
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
137
|
+
mutations: Object.entries(routerProcedures)
|
|
138
|
+
.filter((pair) => pair[1]._def.mutation)
|
|
139
|
+
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
140
|
+
subscriptions: Object.entries(routerProcedures)
|
|
141
|
+
.filter((pair) => pair[1]._def.subscription)
|
|
142
|
+
.reduce((acc, [key, val]) => ({ ...acc, [key]: val }), {}),
|
|
143
|
+
};
|
|
144
|
+
const router = {
|
|
145
|
+
...procedures,
|
|
146
|
+
_def,
|
|
147
|
+
createCaller(ctx) {
|
|
148
|
+
const proxy = createRecursiveProxy(({ path, args }) => {
|
|
149
|
+
// interop mode
|
|
150
|
+
if (path.length === 1 &&
|
|
151
|
+
procedureTypes.includes(path[0])) {
|
|
152
|
+
return callProcedure({
|
|
153
|
+
procedures: _def.procedures,
|
|
154
|
+
path: args[0],
|
|
155
|
+
rawInput: args[1],
|
|
156
|
+
ctx,
|
|
157
|
+
type: path[0],
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
const fullPath = path.join('.');
|
|
161
|
+
const procedure = _def.procedures[fullPath];
|
|
162
|
+
let type = 'query';
|
|
163
|
+
if (procedure._def.mutation) {
|
|
164
|
+
type = 'mutation';
|
|
165
|
+
}
|
|
166
|
+
else if (procedure._def.subscription) {
|
|
167
|
+
type = 'subscription';
|
|
168
|
+
}
|
|
169
|
+
return procedure({
|
|
170
|
+
path: fullPath,
|
|
171
|
+
rawInput: args[0],
|
|
172
|
+
ctx,
|
|
173
|
+
type,
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
return proxy;
|
|
177
|
+
},
|
|
178
|
+
getErrorShape(opts) {
|
|
179
|
+
const { path, error } = opts;
|
|
180
|
+
const { code } = opts.error;
|
|
181
|
+
const shape = {
|
|
182
|
+
message: error.message,
|
|
183
|
+
code: TRPC_ERROR_CODES_BY_KEY[code],
|
|
184
|
+
data: {
|
|
185
|
+
code,
|
|
186
|
+
httpStatus: getHTTPStatusCodeFromError(error),
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
if (config.isDev && typeof opts.error.stack === 'string') {
|
|
190
|
+
shape.data.stack = opts.error.stack;
|
|
191
|
+
}
|
|
192
|
+
if (typeof path === 'string') {
|
|
193
|
+
shape.data.path = path;
|
|
194
|
+
}
|
|
195
|
+
return this._def._config.errorFormatter({ ...opts, shape });
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
return router;
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* @internal
|
|
203
|
+
*/
|
|
204
|
+
function callProcedure(opts) {
|
|
205
|
+
const { type, path } = opts;
|
|
206
|
+
if (!(path in opts.procedures) || !opts.procedures[path]?._def[type]) {
|
|
207
|
+
throw new TRPCError({
|
|
208
|
+
code: 'NOT_FOUND',
|
|
209
|
+
message: `No "${type}"-procedure on path "${path}"`,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
const procedure = opts.procedures[path];
|
|
213
|
+
return procedure(opts);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* The default check to see if we're in a server
|
|
218
|
+
*/
|
|
219
|
+
const isServerDefault = typeof window === 'undefined' ||
|
|
220
|
+
'Deno' in window ||
|
|
221
|
+
globalThis.process?.env?.NODE_ENV === 'test' ||
|
|
222
|
+
!!globalThis.process?.env?.JEST_WORKER_ID ||
|
|
223
|
+
!!globalThis.process?.env?.VITEST_WORKER_ID;
|
|
224
|
+
|
|
225
|
+
export { TRPC_ERROR_CODES_BY_NUMBER as T, defaultTransformer as a, getDataTransformer as b, createRouterFactory as c, defaultFormatter as d, callProcedure as e, getHTTPStatusCode as f, getHTTPStatusCodeFromError as g, isServerDefault as i, procedureTypes as p };
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type { AnyRouter, ProcedureRecord, ProcedureRouterRecord, CreateRouterInner, } from './router';
|
|
2
2
|
export { callProcedure } from './router';
|
|
3
3
|
export type { Procedure, AnyProcedure, AnyQueryProcedure, AnyMutationProcedure, AnySubscriptionProcedure, ProcedureParams, ProcedureArgs, ProcedureOptions, } from './procedure';
|
|
4
|
+
export type { inferParser } from './parser';
|
|
4
5
|
export { createInputMiddleware, createOutputMiddleware } from './middleware';
|
|
5
6
|
export { initTRPC } from './initTRPC';
|
|
6
7
|
export * from './types';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/internals/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/internals/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAKe,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,eAAe;IAC3D;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACnC;;;OAGG;IACH,cAAc,EAAE,cAAc,CAC5B,MAAM,CAAC,KAAK,CAAC,EACb,cAAc,CAAC,MAAM,CAAC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAChD,CAAC;IACF;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,qBAAqB,CAAC,SAAS,SAAS,eAAe,IACjE,SAAS,CAAC;AAEZ;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,eAAe,CAC3D,SAAQ,aAAa,CAAC,SAAS,CAAC;IAChC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,oBAAY,aAAa,GAAG,UAAU,CAAC;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;CAClB,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MaybePromise, Simplify } from '../../types';
|
|
2
2
|
import { MiddlewareBuilder, MiddlewareFunction } from '../middleware';
|
|
3
3
|
import { Parser, inferParser } from '../parser';
|
|
4
4
|
import { Procedure, ProcedureParams } from '../procedure';
|
|
@@ -22,10 +22,7 @@ export interface BuildProcedure<TType extends ProcedureType, TParams extends Pro
|
|
|
22
22
|
_output_out: TOutput;
|
|
23
23
|
}> : TParams> {
|
|
24
24
|
}
|
|
25
|
-
declare type
|
|
26
|
-
[TKey in keyof TType | keyof TWith]: TKey extends keyof TType ? TKey extends keyof TWith ? TType[TKey] & TWith[TKey] : TType[TKey] : TWith[TKey & keyof TWith];
|
|
27
|
-
};
|
|
28
|
-
declare type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType ? TWith : Simplify<InferOptional<Merge<TType, TWith>, UndefinedKeys<Merge<TType, TWith>>>>;
|
|
25
|
+
declare type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType ? TWith : Simplify<TType & TWith>;
|
|
29
26
|
declare type ErrorMessage<TMessage extends string> = TMessage;
|
|
30
27
|
export declare type ProcedureBuilderDef<TParams extends ProcedureParams> = {
|
|
31
28
|
inputs: Parser[];
|
|
@@ -42,7 +39,7 @@ export interface ProcedureBuilder<TParams extends ProcedureParams> {
|
|
|
42
39
|
/**
|
|
43
40
|
* Add an input parser to the procedure.
|
|
44
41
|
*/
|
|
45
|
-
input<$Parser extends Parser>(schema: TParams['_input_out'] extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> ? TParams['_input_out'] extends Record<string, unknown> ? $Parser : ErrorMessage<'All input parsers did not resolve to an object'> : ErrorMessage<'All input parsers did not resolve to an object'>): ProcedureBuilder<{
|
|
42
|
+
input<$Parser extends Parser>(schema: TParams['_input_out'] extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined ? TParams['_input_out'] extends Record<string, unknown> | undefined ? undefined extends inferParser<$Parser>['out'] ? undefined extends TParams['_input_out'] ? $Parser : ErrorMessage<'Cannot chain an optional parser to a required parser'> : $Parser : ErrorMessage<'All input parsers did not resolve to an object'> : ErrorMessage<'All input parsers did not resolve to an object'>): ProcedureBuilder<{
|
|
46
43
|
_config: TParams['_config'];
|
|
47
44
|
_meta: TParams['_meta'];
|
|
48
45
|
_ctx_out: TParams['_ctx_out'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
|
|
2
2
|
export declare class TRPCError extends Error {
|
|
3
3
|
readonly cause?: Error | undefined;
|
|
4
|
-
readonly code: "
|
|
4
|
+
readonly code: "PARSE_ERROR" | "BAD_REQUEST" | "INTERNAL_SERVER_ERROR" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "TOO_MANY_REQUESTS" | "CLIENT_CLOSED_REQUEST";
|
|
5
5
|
constructor(opts: {
|
|
6
6
|
message?: string;
|
|
7
7
|
code: TRPC_ERROR_CODE_KEY;
|
package/dist/http/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var config = require('../config-
|
|
6
|
-
var resolveHTTPResponse = require('../resolveHTTPResponse-
|
|
5
|
+
var config = require('../config-cc5b2d45.js');
|
|
6
|
+
var resolveHTTPResponse = require('../resolveHTTPResponse-6cffb0ce.js');
|
|
7
7
|
require('../TRPCError-bd37df84.js');
|
|
8
8
|
require('../codes-e0ea0f4c.js');
|
|
9
9
|
require('../index-4d2d31b6.js');
|
package/dist/http/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { T as TRPC_ERROR_CODES_BY_NUMBER, f as getHTTPStatusCode, g as getHTTPStatusCodeFromError } from '../config-
|
|
2
|
-
export { r as resolveHTTPResponse } from '../resolveHTTPResponse-
|
|
1
|
+
export { T as TRPC_ERROR_CODES_BY_NUMBER, f as getHTTPStatusCode, g as getHTTPStatusCodeFromError } from '../config-cd794c2a.mjs';
|
|
2
|
+
export { r as resolveHTTPResponse } from '../resolveHTTPResponse-7a4f75b3.mjs';
|
|
3
3
|
import '../TRPCError-7de0a793.mjs';
|
|
4
4
|
import '../codes-52c11119.mjs';
|
|
5
5
|
import '../index-972002da.mjs';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const noop = () => {
|
|
2
|
+
// noop
|
|
3
|
+
};
|
|
4
|
+
function createInnerProxy(callback, path) {
|
|
5
|
+
const proxy = new Proxy(noop, {
|
|
6
|
+
get(_obj, key) {
|
|
7
|
+
if (typeof key !== 'string' || key === 'then') {
|
|
8
|
+
// special case for if the proxy is accidentally treated
|
|
9
|
+
// like a PromiseLike (like in `Promise.resolve(proxy)`)
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return createInnerProxy(callback, [...path, key]);
|
|
13
|
+
},
|
|
14
|
+
apply(_1, _2, args) {
|
|
15
|
+
return callback({
|
|
16
|
+
args,
|
|
17
|
+
path,
|
|
18
|
+
});
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
return proxy;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Creates a proxy that calls the callback with the path and arguments
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
const createRecursiveProxy = (callback) => createInnerProxy(callback, []);
|
|
29
|
+
/**
|
|
30
|
+
* Used in place of `new Proxy` where each handler will map 1 level deep to another value.
|
|
31
|
+
*
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
const createFlatProxy = (callback) => {
|
|
35
|
+
return new Proxy(noop, {
|
|
36
|
+
get(_obj, name) {
|
|
37
|
+
if (typeof name !== 'string' || name === 'then') {
|
|
38
|
+
// special case for if the proxy is accidentally treated
|
|
39
|
+
// like a PromiseLike (like in `Promise.resolve(proxy)`)
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return callback(name);
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { createRecursiveProxy as a, createFlatProxy as c };
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var config = require('./config-
|
|
5
|
+
var config = require('./config-cc5b2d45.js');
|
|
6
6
|
var TRPCError = require('./TRPCError-bd37df84.js');
|
|
7
7
|
var codes = require('./codes-e0ea0f4c.js');
|
|
8
8
|
var index = require('./index-4d2d31b6.js');
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createRouterFactory, d as defaultFormatter, g as getHTTPStatusCodeFromError, a as defaultTransformer, b as getDataTransformer$1, i as isServerDefault } from './config-
|
|
2
|
-
export { e as callProcedure, a as defaultTransformer, b as getDataTransformer, p as procedureTypes } from './config-
|
|
1
|
+
import { c as createRouterFactory, d as defaultFormatter, g as getHTTPStatusCodeFromError, a as defaultTransformer, b as getDataTransformer$1, i as isServerDefault } from './config-cd794c2a.mjs';
|
|
2
|
+
export { e as callProcedure, a as defaultTransformer, b as getDataTransformer, p as procedureTypes } from './config-cd794c2a.mjs';
|
|
3
3
|
import { T as TRPCError, g as getCauseFromUnknown, a as getTRPCErrorFromUnknown } from './TRPCError-7de0a793.mjs';
|
|
4
4
|
export { T as TRPCError } from './TRPCError-7de0a793.mjs';
|
|
5
5
|
import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-52c11119.mjs';
|
package/dist/internals.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export type { DefaultErrorShape } from './error/formatter';
|
|
|
5
5
|
export type { mergeRouters } from './core/internals/mergeRouters';
|
|
6
6
|
export type { RootConfig, AnyRootConfig } from './core/internals/config';
|
|
7
7
|
export type { ProcedureBuilder, BuildProcedure, } from './core/internals/procedureBuilder';
|
|
8
|
-
export type { unsetMarker } from './core/internals/utils';
|
|
8
|
+
export type { Overwrite, unsetMarker } from './core/internals/utils';
|
|
9
9
|
export type { MiddlewareFunction, MiddlewareBuilder } from './core/middleware';
|
|
10
10
|
//# sourceMappingURL=internals.d.ts.map
|
package/dist/internals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EACV,gBAAgB,EAChB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { r as resolveHTTPResponse } from './resolveHTTPResponse-fed650e4.js';
|
|
2
|
+
import { T as TRPCError } from './TRPCError-ef1ceb74.js';
|
|
3
|
+
|
|
4
|
+
async function getPostBody(opts) {
|
|
5
|
+
const { req, maxBodySize = Infinity } = opts;
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
if ('body' in req) {
|
|
8
|
+
resolve({ ok: true, data: req.body });
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
let body = '';
|
|
12
|
+
let hasBody = false;
|
|
13
|
+
req.on('data', function (data) {
|
|
14
|
+
body += data;
|
|
15
|
+
hasBody = true;
|
|
16
|
+
if (body.length > maxBodySize) {
|
|
17
|
+
resolve({
|
|
18
|
+
ok: false,
|
|
19
|
+
error: new TRPCError({ code: 'PAYLOAD_TOO_LARGE' }),
|
|
20
|
+
});
|
|
21
|
+
req.socket.destroy();
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
req.on('end', () => {
|
|
25
|
+
resolve({
|
|
26
|
+
ok: true,
|
|
27
|
+
data: hasBody ? body : undefined,
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async function nodeHTTPRequestHandler(opts) {
|
|
34
|
+
const createContext = async function _createContext() {
|
|
35
|
+
return await opts.createContext?.(opts);
|
|
36
|
+
};
|
|
37
|
+
const { path, router } = opts;
|
|
38
|
+
const bodyResult = await getPostBody(opts);
|
|
39
|
+
const query = opts.req.query
|
|
40
|
+
? new URLSearchParams(opts.req.query)
|
|
41
|
+
: new URLSearchParams(opts.req.url.split('?')[1]);
|
|
42
|
+
const req = {
|
|
43
|
+
method: opts.req.method,
|
|
44
|
+
headers: opts.req.headers,
|
|
45
|
+
query,
|
|
46
|
+
body: bodyResult.ok ? bodyResult.data : undefined,
|
|
47
|
+
};
|
|
48
|
+
const result = await resolveHTTPResponse({
|
|
49
|
+
batching: opts.batching,
|
|
50
|
+
responseMeta: opts.responseMeta,
|
|
51
|
+
path,
|
|
52
|
+
createContext,
|
|
53
|
+
router,
|
|
54
|
+
req,
|
|
55
|
+
error: bodyResult.ok ? null : bodyResult.error,
|
|
56
|
+
onError(o) {
|
|
57
|
+
opts?.onError?.({
|
|
58
|
+
...o,
|
|
59
|
+
req: opts.req,
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const { res } = opts;
|
|
64
|
+
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
65
|
+
res.statusCode = result.status;
|
|
66
|
+
}
|
|
67
|
+
for (const [key, value] of Object.entries(result.headers ?? {})) {
|
|
68
|
+
if (typeof value === 'undefined') {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
res.setHeader(key, value);
|
|
72
|
+
}
|
|
73
|
+
res.end(result.body);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { nodeHTTPRequestHandler as n };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
function identity(x) {
|
|
2
|
+
return x;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/** @internal */
|
|
6
|
+
function pipeFromArray(fns) {
|
|
7
|
+
if (fns.length === 0) {
|
|
8
|
+
return identity;
|
|
9
|
+
}
|
|
10
|
+
if (fns.length === 1) {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
12
|
+
return fns[0];
|
|
13
|
+
}
|
|
14
|
+
return function piped(input) {
|
|
15
|
+
return fns.reduce((prev, fn) => fn(prev), input);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function isObservable(x) {
|
|
20
|
+
return typeof x === 'object' && x !== null && 'subscribe' in x;
|
|
21
|
+
}
|
|
22
|
+
function observable(subscribe) {
|
|
23
|
+
const self = {
|
|
24
|
+
subscribe(observer) {
|
|
25
|
+
let teardownRef = null;
|
|
26
|
+
let isDone = false;
|
|
27
|
+
let unsubscribed = false;
|
|
28
|
+
let teardownImmediately = false;
|
|
29
|
+
function unsubscribe() {
|
|
30
|
+
if (teardownRef === null) {
|
|
31
|
+
teardownImmediately = true;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (unsubscribed) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
unsubscribed = true;
|
|
38
|
+
if (typeof teardownRef === 'function') {
|
|
39
|
+
teardownRef();
|
|
40
|
+
}
|
|
41
|
+
else if (teardownRef) {
|
|
42
|
+
teardownRef.unsubscribe();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
teardownRef = subscribe({
|
|
46
|
+
next(value) {
|
|
47
|
+
if (isDone) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
observer.next?.(value);
|
|
51
|
+
},
|
|
52
|
+
error(err) {
|
|
53
|
+
if (isDone) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
isDone = true;
|
|
57
|
+
observer.error?.(err);
|
|
58
|
+
unsubscribe();
|
|
59
|
+
},
|
|
60
|
+
complete() {
|
|
61
|
+
if (isDone) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
isDone = true;
|
|
65
|
+
observer.complete?.();
|
|
66
|
+
unsubscribe();
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
if (teardownImmediately) {
|
|
70
|
+
unsubscribe();
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
unsubscribe,
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
pipe(...operations) {
|
|
77
|
+
return pipeFromArray(operations)(self);
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
return self;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { isObservable as i, observable as o };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var config = require('./config-
|
|
3
|
+
var config = require('./config-cc5b2d45.js');
|
|
4
4
|
var TRPCError = require('./TRPCError-bd37df84.js');
|
|
5
5
|
var transformTRPCResponse = require('./transformTRPCResponse-d2700b72.js');
|
|
6
6
|
|
|
@@ -77,7 +77,7 @@ async function resolveHTTPResponse(opts) {
|
|
|
77
77
|
if (isBatchCall && !batchingEnabled) {
|
|
78
78
|
throw new Error(`Batching is not enabled on the server`);
|
|
79
79
|
}
|
|
80
|
-
/* istanbul ignore if
|
|
80
|
+
/* istanbul ignore if -- @preserve */ if (type === 'subscription') {
|
|
81
81
|
throw new TRPCError.TRPCError({
|
|
82
82
|
message: 'Subscriptions should use wsLink',
|
|
83
83
|
code: 'METHOD_NOT_SUPPORTED'
|
|
@@ -103,7 +103,7 @@ async function resolveHTTPResponse(opts) {
|
|
|
103
103
|
0: deserializeInputValue(rawInput)
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
/* istanbul ignore if
|
|
106
|
+
/* istanbul ignore if -- @preserve */ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
|
|
107
107
|
throw new TRPCError.TRPCError({
|
|
108
108
|
code: 'BAD_REQUEST',
|
|
109
109
|
message: '"input" needs to be an object when doing a batch call'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e as callProcedure, f as getHTTPStatusCode } from './config-
|
|
1
|
+
import { e as callProcedure, f as getHTTPStatusCode } from './config-cd794c2a.mjs';
|
|
2
2
|
import { T as TRPCError, a as getTRPCErrorFromUnknown, g as getCauseFromUnknown } from './TRPCError-7de0a793.mjs';
|
|
3
3
|
import { t as transformTRPCResponse } from './transformTRPCResponse-7a73a2df.mjs';
|
|
4
4
|
|
|
@@ -75,7 +75,7 @@ async function resolveHTTPResponse(opts) {
|
|
|
75
75
|
if (isBatchCall && !batchingEnabled) {
|
|
76
76
|
throw new Error(`Batching is not enabled on the server`);
|
|
77
77
|
}
|
|
78
|
-
/* istanbul ignore if
|
|
78
|
+
/* istanbul ignore if -- @preserve */ if (type === 'subscription') {
|
|
79
79
|
throw new TRPCError({
|
|
80
80
|
message: 'Subscriptions should use wsLink',
|
|
81
81
|
code: 'METHOD_NOT_SUPPORTED'
|
|
@@ -101,7 +101,7 @@ async function resolveHTTPResponse(opts) {
|
|
|
101
101
|
0: deserializeInputValue(rawInput)
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
/* istanbul ignore if
|
|
104
|
+
/* istanbul ignore if -- @preserve */ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
|
|
105
105
|
throw new TRPCError({
|
|
106
106
|
code: 'BAD_REQUEST',
|
|
107
107
|
message: '"input" needs to be an object when doing a batch call'
|