@trpc/server 10.0.0-alpha.26 → 10.0.0-alpha.27
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-ddec3395.js → TRPCError-9050a68d.js} +0 -0
- package/dist/{TRPCError-7971540a.mjs → TRPCError-b7fa0c31.mjs} +0 -0
- package/dist/adapters/express.js +3 -3
- package/dist/adapters/express.mjs +3 -3
- package/dist/adapters/fastify/index.js +2 -2
- package/dist/adapters/fastify/index.mjs +2 -2
- package/dist/adapters/fetch/index.js +2 -2
- package/dist/adapters/fetch/index.mjs +2 -2
- package/dist/adapters/next.d.ts.map +1 -1
- 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/node-http/internals/getPostBody.d.ts +1 -1
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
- package/dist/adapters/standalone.js +3 -3
- package/dist/adapters/standalone.mjs +3 -3
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +1 -1
- package/dist/adapters/ws.mjs +1 -1
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +60 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -1
- package/dist/core/internals/internalProcedure.d.ts +1 -1
- package/dist/core/internals/internalProcedure.d.ts.map +1 -1
- package/dist/core/internals/mergeRoutersGeneric.d.ts +21 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +3 -2
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/core/router.d.ts +13 -1
- package/dist/core/router.d.ts.map +1 -1
- package/dist/deprecated/internals/middlewares.d.ts +1 -1
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -1
- package/dist/deprecated/internals/procedure.d.ts.map +1 -1
- package/dist/deprecated/router.d.ts +1 -1
- package/dist/deprecated/router.d.ts.map +1 -1
- package/dist/error/TRPCError.d.ts +1 -1
- package/dist/error/TRPCError.d.ts.map +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +1 -1
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +1 -1
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +69 -62
- package/dist/index.mjs +71 -64
- package/dist/internals/types.d.ts +1 -1
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/{nodeHTTPRequestHandler-5ad62229.mjs → nodeHTTPRequestHandler-174459c5.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-9ddd18f2.js → nodeHTTPRequestHandler-6b7c8622.js} +2 -2
- package/dist/{resolveHTTPResponse-ccb9cfa1.mjs → resolveHTTPResponse-8657b8de.mjs} +1 -1
- package/dist/{resolveHTTPResponse-5932d785.js → resolveHTTPResponse-fcc8f644.js} +1 -1
- package/dist/subscription.js +1 -1
- package/dist/subscription.mjs +1 -1
- package/package.json +3 -2
- package/src/adapters/next.ts +1 -1
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/ws.ts +2 -2
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +60 -0
- package/src/core/internals/internalProcedure.ts +4 -4
- package/src/core/internals/mergeRoutersGeneric.ts +35 -0
- package/src/core/internals/procedureBuilder.ts +3 -2
- package/src/core/router.ts +46 -1
- package/src/deprecated/internals/middlewares.ts +1 -1
- package/src/deprecated/internals/procedure.ts +2 -5
- package/src/deprecated/router.ts +3 -13
- package/src/error/TRPCError.ts +2 -2
- package/src/http/internals/getHTTPStatusCode.ts +1 -1
- package/src/http/internals/types.ts +1 -1
- package/src/http/resolveHTTPResponse.ts +2 -2
- package/src/index.ts +1 -1
- package/src/internals/types.ts +1 -1
- package/src/subscription.ts +1 -1
- package/dist/TRPCError.d.ts +0 -11
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/internals/errors.d.ts +0 -5
- package/dist/internals/errors.d.ts.map +0 -1
- package/src/TRPCError.ts +0 -27
- package/src/internals/errors.ts +0 -49
|
@@ -59,9 +59,10 @@ export interface ProcedureBuilder<TParams extends ProcedureParams> {
|
|
|
59
59
|
fn: MiddlewareFunction<TParams, $TParams>,
|
|
60
60
|
): CreateProcedureReturnInput<TParams, $TParams>;
|
|
61
61
|
/**
|
|
62
|
-
* Extend the procedure with another procedure
|
|
62
|
+
* Extend the procedure with another procedure.
|
|
63
|
+
* @warning The TypeScript inference fails when chaining concatenated procedures.
|
|
63
64
|
*/
|
|
64
|
-
|
|
65
|
+
unstable_concat<$ProcedureReturnInput extends ProcedureBuilder<any>>(
|
|
65
66
|
proc: $ProcedureReturnInput,
|
|
66
67
|
): $ProcedureReturnInput extends ProcedureBuilder<infer $TParams>
|
|
67
68
|
? CreateProcedureReturnInput<TParams, $TParams>
|
package/src/core/router.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
|
-
import { TRPCError } from '../TRPCError';
|
|
2
|
+
import { TRPCError } from '../error/TRPCError';
|
|
3
3
|
import {
|
|
4
4
|
DefaultErrorShape,
|
|
5
5
|
ErrorFormatter,
|
|
@@ -94,9 +94,22 @@ type inferHandlerFn<TProcedures extends ProcedureRecord<any>> = <
|
|
|
94
94
|
*/
|
|
95
95
|
|
|
96
96
|
type RouterCaller<TParams extends AnyRouterParams> = (ctx: TParams['_ctx']) => {
|
|
97
|
+
/**
|
|
98
|
+
* @deprecated
|
|
99
|
+
*/
|
|
97
100
|
query: inferHandlerFn<TParams['queries']>;
|
|
101
|
+
/**
|
|
102
|
+
* @deprecated
|
|
103
|
+
*/
|
|
98
104
|
mutation: inferHandlerFn<TParams['mutations']>;
|
|
105
|
+
/**
|
|
106
|
+
* @deprecated
|
|
107
|
+
*/
|
|
99
108
|
subscription: inferHandlerFn<TParams['subscriptions']>;
|
|
109
|
+
|
|
110
|
+
queries: TParams['queries'];
|
|
111
|
+
mutations: TParams['mutations'];
|
|
112
|
+
subscriptions: TParams['subscriptions'];
|
|
100
113
|
};
|
|
101
114
|
|
|
102
115
|
export interface Router<TParams extends AnyRouterParams>
|
|
@@ -148,6 +161,13 @@ type RouterBuildOptions<TContext> = Pick<
|
|
|
148
161
|
|
|
149
162
|
export type AnyRouter = Router<any>;
|
|
150
163
|
|
|
164
|
+
function createRouterProxy(callback: (...args: [string, ...unknown[]]) => any) {
|
|
165
|
+
return new Proxy({} as any, {
|
|
166
|
+
get(_, path: string) {
|
|
167
|
+
return (...args: unknown[]) => callback(path, ...args);
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
}
|
|
151
171
|
const emptyRouter = {
|
|
152
172
|
_ctx: null as any,
|
|
153
173
|
_errorShape: null as any,
|
|
@@ -256,6 +276,31 @@ export function createRouterFactory<TSettings extends RootConfig>(
|
|
|
256
276
|
ctx,
|
|
257
277
|
type: 'subscription',
|
|
258
278
|
}) as any,
|
|
279
|
+
|
|
280
|
+
queries: createRouterProxy((path, rawInput) =>
|
|
281
|
+
callProcedure({
|
|
282
|
+
path,
|
|
283
|
+
rawInput,
|
|
284
|
+
ctx,
|
|
285
|
+
type: 'query',
|
|
286
|
+
}),
|
|
287
|
+
),
|
|
288
|
+
mutations: createRouterProxy((path, rawInput) =>
|
|
289
|
+
callProcedure({
|
|
290
|
+
path,
|
|
291
|
+
rawInput,
|
|
292
|
+
ctx,
|
|
293
|
+
type: 'mutation',
|
|
294
|
+
}),
|
|
295
|
+
),
|
|
296
|
+
subscriptions: createRouterProxy((path, rawInput) =>
|
|
297
|
+
callProcedure({
|
|
298
|
+
path,
|
|
299
|
+
rawInput,
|
|
300
|
+
ctx,
|
|
301
|
+
type: 'subscription',
|
|
302
|
+
}),
|
|
303
|
+
),
|
|
259
304
|
};
|
|
260
305
|
},
|
|
261
306
|
getErrorShape(opts) {
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { TRPCError } from '../../TRPCError';
|
|
3
2
|
import { assertNotBrowser } from '../../assertNotBrowser';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
getErrorFromUnknown,
|
|
7
|
-
} from '../../internals/errors';
|
|
3
|
+
import { TRPCError } from '../../error/TRPCError';
|
|
4
|
+
import { getCauseFromUnknown, getErrorFromUnknown } from '../../error/utils';
|
|
8
5
|
import { InferLast } from '../../types';
|
|
9
6
|
import { ProcedureType } from '../router';
|
|
10
7
|
import {
|
package/src/deprecated/router.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
2
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import { TRPCError } from '../TRPCError';
|
|
5
4
|
import { assertNotBrowser } from '../assertNotBrowser';
|
|
5
|
+
import { TRPCError } from '../error/TRPCError';
|
|
6
|
+
import { defaultFormatter } from '../error/formatter';
|
|
6
7
|
import { getHTTPStatusCodeFromError } from '../http/internals/getHTTPStatusCode';
|
|
7
8
|
import { Observable, inferObservableValue } from '../observable';
|
|
8
9
|
import {
|
|
@@ -14,6 +15,7 @@ import {
|
|
|
14
15
|
import {
|
|
15
16
|
CombinedDataTransformer,
|
|
16
17
|
DataTransformerOptions,
|
|
18
|
+
defaultTransformer,
|
|
17
19
|
} from '../transformer';
|
|
18
20
|
import { Prefixer, ThenArg, flatten } from '../types';
|
|
19
21
|
import { MiddlewareFunction } from './internals/middlewares';
|
|
@@ -235,18 +237,6 @@ function safeObject<TObj1, TObj2>(obj1: TObj1, obj2: TObj2): TObj1 & TObj2;
|
|
|
235
237
|
function safeObject(...args: unknown[]) {
|
|
236
238
|
return Object.assign(Object.create(null), ...args);
|
|
237
239
|
}
|
|
238
|
-
const defaultFormatter: ErrorFormatter<any, any> = ({
|
|
239
|
-
shape,
|
|
240
|
-
}: {
|
|
241
|
-
shape: DefaultErrorShape;
|
|
242
|
-
}) => {
|
|
243
|
-
return shape;
|
|
244
|
-
};
|
|
245
|
-
const defaultTransformer: CombinedDataTransformer = {
|
|
246
|
-
input: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
247
|
-
output: { serialize: (obj) => obj, deserialize: (obj) => obj },
|
|
248
|
-
};
|
|
249
|
-
|
|
250
240
|
type SwapProcedureContext<
|
|
251
241
|
TProcedure extends Procedure<any, any, any, any, any, any, any>,
|
|
252
242
|
TNewContext,
|
package/src/error/TRPCError.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { getMessageFromUnkownError } from '../error/utils';
|
|
1
2
|
import { TRPC_ERROR_CODE_KEY } from '../rpc/codes';
|
|
2
|
-
import { getMessageFromUnkownError } from './utils';
|
|
3
3
|
|
|
4
4
|
export class TRPCError extends Error {
|
|
5
|
-
public readonly cause
|
|
5
|
+
public readonly cause?;
|
|
6
6
|
public readonly code;
|
|
7
7
|
|
|
8
8
|
constructor(opts: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TRPCError } from '../../TRPCError';
|
|
2
1
|
import { AnyRouter, ProcedureType, inferRouterParams } from '../../core';
|
|
2
|
+
import { TRPCError } from '../../error/TRPCError';
|
|
3
3
|
import { BaseHandlerOptions } from '../../internals/types';
|
|
4
4
|
import { TRPCResponse } from '../../rpc';
|
|
5
5
|
import { Dict } from '../../types';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
import { TRPCError } from '../TRPCError';
|
|
3
2
|
import {
|
|
4
3
|
AnyRouter,
|
|
5
4
|
ProcedureType,
|
|
6
5
|
inferRouterContext,
|
|
7
6
|
inferRouterError,
|
|
8
7
|
} from '../core';
|
|
9
|
-
import {
|
|
8
|
+
import { TRPCError } from '../error/TRPCError';
|
|
9
|
+
import { getCauseFromUnknown, getErrorFromUnknown } from '../error/utils';
|
|
10
10
|
import { transformTRPCResponse } from '../internals/transformTRPCResponse';
|
|
11
11
|
import { TRPCResponse } from '../rpc';
|
|
12
12
|
import { Maybe } from '../types';
|
package/src/index.ts
CHANGED
package/src/internals/types.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { TRPCError } from '../TRPCError';
|
|
2
1
|
import { inferRouterParams } from '../core';
|
|
3
2
|
import { ProcedureType } from '../core';
|
|
4
3
|
import { AnyRouter } from '../core/router';
|
|
4
|
+
import { TRPCError } from '../error/TRPCError';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Base interface for any response handler
|
package/src/subscription.ts
CHANGED
package/dist/TRPCError.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { TRPC_ERROR_CODE_KEY } from './rpc/codes';
|
|
2
|
-
export declare class TRPCError extends Error {
|
|
3
|
-
readonly cause?: Error | undefined;
|
|
4
|
-
readonly code: "PARSE_ERROR" | "BAD_REQUEST" | "INTERNAL_SERVER_ERROR" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "CLIENT_CLOSED_REQUEST";
|
|
5
|
-
constructor(opts: {
|
|
6
|
-
message?: string;
|
|
7
|
-
code: TRPC_ERROR_CODE_KEY;
|
|
8
|
-
cause?: Error;
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=TRPCError.d.ts.map
|
package/dist/TRPCError.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TRPCError.d.ts","sourceRoot":"","sources":["../src/TRPCError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,KAAK,CAAC,oBAAC;IACvB,SAAgB,IAAI,iOAAC;gBAET,IAAI,EAAE;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;CAeF"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { TRPCError } from '../TRPCError';
|
|
2
|
-
export declare function getMessageFromUnkownError(err: unknown, fallback: string): string;
|
|
3
|
-
export declare function getErrorFromUnknown(cause: unknown): TRPCError;
|
|
4
|
-
export declare function getCauseFromUnknown(cause: unknown): Error | undefined;
|
|
5
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/internals/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAwB7D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,qBAMjD"}
|
package/src/TRPCError.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { getMessageFromUnkownError } from './internals/errors';
|
|
2
|
-
import { TRPC_ERROR_CODE_KEY } from './rpc/codes';
|
|
3
|
-
|
|
4
|
-
export class TRPCError extends Error {
|
|
5
|
-
public readonly cause?;
|
|
6
|
-
public readonly code;
|
|
7
|
-
|
|
8
|
-
constructor(opts: {
|
|
9
|
-
message?: string;
|
|
10
|
-
code: TRPC_ERROR_CODE_KEY;
|
|
11
|
-
cause?: Error;
|
|
12
|
-
}) {
|
|
13
|
-
const cause = opts.cause;
|
|
14
|
-
const code = opts.code;
|
|
15
|
-
const message = opts.message ?? getMessageFromUnkownError(cause, code);
|
|
16
|
-
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
18
|
-
// @ts-ignore https://github.com/tc39/proposal-error-cause
|
|
19
|
-
super(message, { cause });
|
|
20
|
-
|
|
21
|
-
this.code = code;
|
|
22
|
-
this.cause = cause;
|
|
23
|
-
this.name = 'TRPCError';
|
|
24
|
-
|
|
25
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
26
|
-
}
|
|
27
|
-
}
|
package/src/internals/errors.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { TRPCError } from '../TRPCError';
|
|
2
|
-
|
|
3
|
-
export function getMessageFromUnkownError(
|
|
4
|
-
err: unknown,
|
|
5
|
-
fallback: string,
|
|
6
|
-
): string {
|
|
7
|
-
if (typeof err === 'string') {
|
|
8
|
-
return err;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
if (err instanceof Error && typeof err.message === 'string') {
|
|
12
|
-
return err.message;
|
|
13
|
-
}
|
|
14
|
-
return fallback;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function getErrorFromUnknown(cause: unknown): TRPCError {
|
|
18
|
-
// this should ideally be an `instanceof TRPCError` but for some reason that isn't working
|
|
19
|
-
// ref https://github.com/trpc/trpc/issues/331
|
|
20
|
-
if (cause instanceof Error && cause.name === 'TRPCError') {
|
|
21
|
-
return cause as TRPCError;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
let errorCause: Error | undefined = undefined;
|
|
25
|
-
let stack: string | undefined = undefined;
|
|
26
|
-
|
|
27
|
-
if (cause instanceof Error) {
|
|
28
|
-
errorCause = cause;
|
|
29
|
-
// take stack trace from cause
|
|
30
|
-
stack = cause.stack;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const err = new TRPCError({
|
|
34
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
35
|
-
cause: errorCause,
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
err.stack = stack;
|
|
39
|
-
|
|
40
|
-
return err;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export function getCauseFromUnknown(cause: unknown) {
|
|
44
|
-
if (cause instanceof Error) {
|
|
45
|
-
return cause;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return undefined;
|
|
49
|
-
}
|