@trpc/server 11.0.0-alpha-tmp-export-from-main-nuke-core.215 → 11.0.0-alpha-tmp-export-from-main.211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@trpc-core-unstable-do-not-import-this-please.d.ts +9 -0
- package/dist/@trpc-core-unstable-do-not-import-this-please.d.ts.map +1 -0
- package/dist/@trpc-server/http.d.ts +1 -1
- package/dist/@trpc-server/http.d.ts.map +1 -1
- package/dist/@trpc-server.d.ts +3 -3
- package/dist/@trpc-server.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.d.ts +1 -1
- package/dist/adapters/aws-lambda/index.js +7 -12
- package/dist/adapters/aws-lambda/index.mjs +3 -8
- package/dist/adapters/aws-lambda/utils.d.ts +1 -1
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +2 -8
- package/dist/adapters/express.mjs +2 -8
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/index.js +4 -12
- package/dist/adapters/fastify/index.mjs +2 -10
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
- package/dist/adapters/fetch/index.js +4 -10
- package/dist/adapters/fetch/index.mjs +2 -8
- package/dist/adapters/fetch/types.d.ts +1 -1
- package/dist/adapters/next.d.ts +1 -1
- package/dist/adapters/next.js +5 -11
- package/dist/adapters/next.mjs +3 -9
- package/dist/adapters/node-http/content-type/json/index.js +3 -5
- package/dist/adapters/node-http/content-type/json/index.mjs +1 -3
- package/dist/adapters/node-http/index.js +2 -8
- package/dist/adapters/node-http/index.mjs +2 -8
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/adapters/node-http/types.d.ts +2 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +1 -1
- package/dist/adapters/standalone.js +2 -8
- package/dist/adapters/standalone.mjs +2 -8
- package/dist/adapters/ws.d.ts +1 -2
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +26 -31
- package/dist/adapters/ws.mjs +1 -6
- package/dist/http.d.ts +6 -6
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +21 -12
- package/dist/http.mjs +1 -7
- package/dist/index.js +41 -15
- package/dist/index.mjs +1 -5
- package/dist/{nodeHTTPRequestHandler-257a3b5f.mjs → nodeHTTPRequestHandler-2d5c8791.mjs} +2 -4
- package/dist/{nodeHTTPRequestHandler-f4b7e374.js → nodeHTTPRequestHandler-55f05150.js} +4 -6
- package/dist/{nodeHTTPRequestHandler-29178135.js → nodeHTTPRequestHandler-7691fc79.js} +1 -3
- package/dist/observable.d.ts +2 -2
- package/dist/observable.d.ts.map +1 -1
- package/dist/observable.js +25 -9
- package/dist/observable.mjs +1 -3
- package/dist/rpc.d.ts +2 -2
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +13 -5
- package/dist/rpc.mjs +1 -2
- package/dist/shared.js +9 -4
- package/dist/shared.mjs +1 -2
- package/package.json +125 -53
- package/src/@trpc-core-unstable-do-not-import-this-please.ts +9 -0
- package/src/@trpc-server/http.ts +1 -2
- package/src/@trpc-server.ts +3 -3
- package/src/adapters/aws-lambda/index.ts +1 -1
- package/src/adapters/aws-lambda/utils.ts +1 -1
- package/src/adapters/express.ts +2 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -1
- package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
- package/src/adapters/fetch/types.ts +1 -1
- package/src/adapters/next.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +1 -1
- package/src/adapters/node-http/types.ts +3 -2
- package/src/adapters/standalone.ts +1 -1
- package/src/adapters/ws.ts +10 -9
- package/src/http.ts +6 -6
- package/src/observable.ts +2 -2
- package/src/rpc.ts +2 -2
- package/dist/TRPCError-10da405a.js +0 -61
- package/dist/TRPCError-14edcf88.mjs +0 -63
- package/dist/TRPCError-e2c8eb77.js +0 -67
- package/dist/batchStreamFormatter-1971db27.js +0 -32
- package/dist/batchStreamFormatter-378277dc.mjs +0 -30
- package/dist/batchStreamFormatter-4375dc8b.js +0 -31
- package/dist/bundle-analysis.json +0 -767
- package/dist/contentType-2ed02bef.mjs +0 -52
- package/dist/contentType-3a829011.js +0 -54
- package/dist/contentType-e4a2373e.js +0 -59
- package/dist/createProxy-0306dcaa.mjs +0 -121
- package/dist/createProxy-7e413449.js +0 -127
- package/dist/createProxy-dce0c414.js +0 -116
- package/dist/initTRPC-2cef03ab.js +0 -384
- package/dist/initTRPC-38faa18f.js +0 -371
- package/dist/initTRPC-fa1b3d57.mjs +0 -376
- package/dist/observable-2a5a96d5.js +0 -125
- package/dist/observable-62674916.js +0 -125
- package/dist/observable-6d025a37.mjs +0 -121
- package/dist/operators-0cc4956a.js +0 -99
- package/dist/operators-b08617cb.js +0 -103
- package/dist/operators-d0c3e794.mjs +0 -99
- package/dist/parseTRPCMessage-6e6c204e.js +0 -65
- package/dist/parseTRPCMessage-8eb0bbe9.mjs +0 -62
- package/dist/parseTRPCMessage-ebdfe3ca.js +0 -67
- package/dist/resolveHTTPResponse-833ca2b8.js +0 -265
- package/dist/resolveHTTPResponse-9322334c.mjs +0 -291
- package/dist/resolveHTTPResponse-d64c48e1.js +0 -293
- package/dist/rootConfig-3371c473.js +0 -89
- package/dist/rootConfig-571c9267.js +0 -94
- package/dist/rootConfig-6b04a6b8.mjs +0 -81
- package/dist/router-3344b52a.js +0 -262
- package/dist/router-919c37eb.js +0 -259
- package/dist/router-d6789e4b.mjs +0 -252
- package/dist/unstable-core-do-not-import/TRPCInferrable.d.ts +0 -6
- package/dist/unstable-core-do-not-import/TRPCInferrable.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/createProxy.d.ts +0 -19
- package/dist/unstable-core-do-not-import/createProxy.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts +0 -13
- package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/error/formatter.d.ts +0 -33
- package/dist/unstable-core-do-not-import/error/formatter.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts +0 -15
- package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts +0 -24
- package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/contentType.d.ts +0 -29
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +0 -5
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/index.d.ts +0 -7
- package/dist/unstable-core-do-not-import/http/index.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts +0 -51
- package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/http/types.d.ts +0 -96
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/index.d.ts +0 -35
- package/dist/unstable-core-do-not-import/index.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/index.js +0 -51
- package/dist/unstable-core-do-not-import/index.mjs +0 -11
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +0 -96
- package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/middleware.d.ts +0 -105
- package/dist/unstable-core-do-not-import/middleware.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/observable/index.d.ts +0 -5
- package/dist/unstable-core-do-not-import/observable/index.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/observable/observable.d.ts +0 -13
- package/dist/unstable-core-do-not-import/observable/observable.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/observable/operators.d.ts +0 -8
- package/dist/unstable-core-do-not-import/observable/operators.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/observable/types.d.ts +0 -26
- package/dist/unstable-core-do-not-import/observable/types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/parser.d.ts +0 -30
- package/dist/unstable-core-do-not-import/parser.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/procedure.d.ts +0 -72
- package/dist/unstable-core-do-not-import/procedure.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +0 -101
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rootConfig.d.ts +0 -75
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/router.d.ts +0 -85
- package/dist/unstable-core-do-not-import/router.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts +0 -51
- package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +0 -97
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/index.d.ts +0 -5
- package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts +0 -5
- package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/serialize.d.ts +0 -62
- package/dist/unstable-core-do-not-import/serialize.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/transformer.d.ts +0 -107
- package/dist/unstable-core-do-not-import/transformer.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/types.d.ts +0 -98
- package/dist/unstable-core-do-not-import/types.d.ts.map +0 -1
- package/dist/unstable-core-do-not-import/utils.d.ts +0 -31
- package/dist/unstable-core-do-not-import/utils.d.ts.map +0 -1
- package/src/unstable-core-do-not-import/TRPCInferrable.ts +0 -9
- package/src/unstable-core-do-not-import/createProxy.ts +0 -59
- package/src/unstable-core-do-not-import/error/TRPCError.ts +0 -82
- package/src/unstable-core-do-not-import/error/formatter.ts +0 -51
- package/src/unstable-core-do-not-import/error/getErrorShape.ts +0 -36
- package/src/unstable-core-do-not-import/http/batchStreamFormatter.ts +0 -29
- package/src/unstable-core-do-not-import/http/contentType.ts +0 -99
- package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +0 -57
- package/src/unstable-core-do-not-import/http/index.ts +0 -23
- package/src/unstable-core-do-not-import/http/resolveHTTPResponse.ts +0 -458
- package/src/unstable-core-do-not-import/http/types.ts +0 -111
- package/src/unstable-core-do-not-import/index.ts +0 -108
- package/src/unstable-core-do-not-import/initTRPC.ts +0 -206
- package/src/unstable-core-do-not-import/middleware.ts +0 -233
- package/src/unstable-core-do-not-import/observable/index.ts +0 -10
- package/src/unstable-core-do-not-import/observable/observable.ts +0 -155
- package/src/unstable-core-do-not-import/observable/operators.ts +0 -119
- package/src/unstable-core-do-not-import/observable/types.ts +0 -76
- package/src/unstable-core-do-not-import/parser.ts +0 -94
- package/src/unstable-core-do-not-import/procedure.ts +0 -108
- package/src/unstable-core-do-not-import/procedureBuilder.ts +0 -458
- package/src/unstable-core-do-not-import/rootConfig.ts +0 -90
- package/src/unstable-core-do-not-import/router.ts +0 -370
- package/src/unstable-core-do-not-import/rpc/codes.ts +0 -44
- package/src/unstable-core-do-not-import/rpc/envelopes.ts +0 -136
- package/src/unstable-core-do-not-import/rpc/index.ts +0 -21
- package/src/unstable-core-do-not-import/rpc/parseTRPCMessage.ts +0 -85
- package/src/unstable-core-do-not-import/serialize.ts +0 -122
- package/src/unstable-core-do-not-import/transformer.ts +0 -202
- package/src/unstable-core-do-not-import/types.ts +0 -151
- package/src/unstable-core-do-not-import/utils.ts +0 -66
- package/unstable-core-do-not-import/index.d.ts +0 -1
- package/unstable-core-do-not-import/index.js +0 -1
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { createFlatProxy } from './createProxy';
|
|
2
|
-
import {
|
|
3
|
-
defaultFormatter,
|
|
4
|
-
type DefaultErrorShape,
|
|
5
|
-
type ErrorFormatter,
|
|
6
|
-
type ErrorFormatterShape,
|
|
7
|
-
} from './error/formatter';
|
|
8
|
-
import { createMiddlewareFactory } from './middleware';
|
|
9
|
-
import { createBuilder } from './procedureBuilder';
|
|
10
|
-
import {
|
|
11
|
-
isServerDefault,
|
|
12
|
-
type CreateRootConfigTypes,
|
|
13
|
-
type RootConfig,
|
|
14
|
-
type RootConfigTypes,
|
|
15
|
-
type RuntimeConfig,
|
|
16
|
-
} from './rootConfig';
|
|
17
|
-
import {
|
|
18
|
-
createCallerFactory,
|
|
19
|
-
createRouterFactory,
|
|
20
|
-
mergeRouters,
|
|
21
|
-
} from './router';
|
|
22
|
-
import {
|
|
23
|
-
defaultTransformer,
|
|
24
|
-
getDataTransformer,
|
|
25
|
-
type DataTransformerOptions,
|
|
26
|
-
type DefaultDataTransformer,
|
|
27
|
-
} from './transformer';
|
|
28
|
-
import type {
|
|
29
|
-
Overwrite,
|
|
30
|
-
PickFirstDefined,
|
|
31
|
-
Unwrap,
|
|
32
|
-
ValidateShape,
|
|
33
|
-
} from './types';
|
|
34
|
-
|
|
35
|
-
type PartialRootConfigTypes = Partial<RootConfigTypes>;
|
|
36
|
-
|
|
37
|
-
type CreateRootConfigTypesFromPartial<TTypes extends PartialRootConfigTypes> =
|
|
38
|
-
CreateRootConfigTypes<{
|
|
39
|
-
ctx: TTypes['ctx'] extends RootConfigTypes['ctx'] ? TTypes['ctx'] : object;
|
|
40
|
-
meta: TTypes['meta'] extends RootConfigTypes['meta']
|
|
41
|
-
? TTypes['meta']
|
|
42
|
-
: object;
|
|
43
|
-
errorShape: TTypes['errorShape'];
|
|
44
|
-
transformer: DataTransformerOptions;
|
|
45
|
-
}>;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* TODO: This can be improved:
|
|
49
|
-
* - We should be able to chain `.meta()`/`.context()` only once
|
|
50
|
-
* - Simplify typings
|
|
51
|
-
* - Doesn't need to be a class but it doesn't really hurt either
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
class TRPCBuilder<TParams extends PartialRootConfigTypes = object> {
|
|
55
|
-
/**
|
|
56
|
-
* Add a context shape as a generic to the root object
|
|
57
|
-
* @link https://trpc.io/docs/v11/server/context
|
|
58
|
-
*/
|
|
59
|
-
context<
|
|
60
|
-
TNewContext extends
|
|
61
|
-
| RootConfigTypes['ctx']
|
|
62
|
-
| ((...args: unknown[]) => RootConfigTypes['ctx']),
|
|
63
|
-
>() {
|
|
64
|
-
type NextParams = Overwrite<TParams, { ctx: Unwrap<TNewContext> }>;
|
|
65
|
-
|
|
66
|
-
return new TRPCBuilder<NextParams>();
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Add a meta shape as a generic to the root object
|
|
71
|
-
* @link https://trpc.io/docs/v11/quickstart
|
|
72
|
-
*/
|
|
73
|
-
meta<TNewMeta extends RootConfigTypes['meta']>() {
|
|
74
|
-
type NextParams = Overwrite<TParams, { meta: TNewMeta }>;
|
|
75
|
-
|
|
76
|
-
return new TRPCBuilder<NextParams>();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Create the root object
|
|
81
|
-
* @link https://trpc.io/docs/v11/server/routers#initialize-trpc
|
|
82
|
-
*/
|
|
83
|
-
create<
|
|
84
|
-
TOptions extends Partial<
|
|
85
|
-
RuntimeConfig<CreateRootConfigTypesFromPartial<TParams>>
|
|
86
|
-
>,
|
|
87
|
-
>(
|
|
88
|
-
options?:
|
|
89
|
-
| ValidateShape<
|
|
90
|
-
TOptions,
|
|
91
|
-
Partial<RuntimeConfig<CreateRootConfigTypesFromPartial<TParams>>>
|
|
92
|
-
>
|
|
93
|
-
| undefined,
|
|
94
|
-
) {
|
|
95
|
-
return createTRPCInner<TParams>()<TOptions>(options);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Builder to initialize the tRPC root object - use this exactly once per backend
|
|
101
|
-
* @link https://trpc.io/docs/v11/quickstart
|
|
102
|
-
*/
|
|
103
|
-
export const initTRPC = new TRPCBuilder();
|
|
104
|
-
|
|
105
|
-
function createTRPCInner<TParams extends PartialRootConfigTypes>() {
|
|
106
|
-
type $Generics = CreateRootConfigTypesFromPartial<TParams>;
|
|
107
|
-
|
|
108
|
-
type $Context = $Generics['ctx'];
|
|
109
|
-
type $Meta = $Generics['meta'];
|
|
110
|
-
type $Runtime = Partial<RuntimeConfig<$Generics>>;
|
|
111
|
-
|
|
112
|
-
return function initTRPCInner<TOptions extends $Runtime>(
|
|
113
|
-
runtime?: ValidateShape<TOptions, $Runtime>,
|
|
114
|
-
) {
|
|
115
|
-
type $Formatter = PickFirstDefined<
|
|
116
|
-
TOptions['errorFormatter'],
|
|
117
|
-
ErrorFormatter<$Context, DefaultErrorShape>
|
|
118
|
-
>;
|
|
119
|
-
type $Transformer = TOptions['transformer'] extends DataTransformerOptions
|
|
120
|
-
? TOptions['transformer']
|
|
121
|
-
: DefaultDataTransformer;
|
|
122
|
-
type $ErrorShape = ErrorFormatterShape<$Formatter>;
|
|
123
|
-
|
|
124
|
-
type $Config = RootConfig<{
|
|
125
|
-
ctx: $Context;
|
|
126
|
-
meta: $Meta;
|
|
127
|
-
errorShape: $ErrorShape;
|
|
128
|
-
transformer: $Transformer;
|
|
129
|
-
}>;
|
|
130
|
-
|
|
131
|
-
const errorFormatter = runtime?.errorFormatter ?? defaultFormatter;
|
|
132
|
-
const transformer = getDataTransformer(
|
|
133
|
-
runtime?.transformer ?? defaultTransformer,
|
|
134
|
-
) as $Transformer;
|
|
135
|
-
|
|
136
|
-
const config: $Config = {
|
|
137
|
-
transformer,
|
|
138
|
-
isDev:
|
|
139
|
-
runtime?.isDev ??
|
|
140
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
141
|
-
globalThis.process?.env?.['NODE_ENV'] !== 'production',
|
|
142
|
-
allowOutsideOfServer: runtime?.allowOutsideOfServer ?? false,
|
|
143
|
-
errorFormatter,
|
|
144
|
-
isServer: runtime?.isServer ?? isServerDefault,
|
|
145
|
-
/**
|
|
146
|
-
* @internal
|
|
147
|
-
*/
|
|
148
|
-
$types: createFlatProxy((key) => {
|
|
149
|
-
throw new Error(
|
|
150
|
-
`Tried to access "$types.${key}" which is not available at runtime`,
|
|
151
|
-
);
|
|
152
|
-
}),
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
{
|
|
156
|
-
// Server check
|
|
157
|
-
const isServer: boolean = runtime?.isServer ?? isServerDefault;
|
|
158
|
-
|
|
159
|
-
if (!isServer && runtime?.allowOutsideOfServer !== true) {
|
|
160
|
-
throw new Error(
|
|
161
|
-
`You're trying to use @trpc/server in a non-server environment. This is not supported by default.`,
|
|
162
|
-
);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return {
|
|
166
|
-
/**
|
|
167
|
-
* These are just types, they can't be used
|
|
168
|
-
* @internal
|
|
169
|
-
*/
|
|
170
|
-
_config: config,
|
|
171
|
-
/**
|
|
172
|
-
* Builder object for creating procedures
|
|
173
|
-
* @link https://trpc.io/docs/v11/server/procedures
|
|
174
|
-
*/
|
|
175
|
-
procedure: createBuilder<
|
|
176
|
-
$Config['$types']['ctx'],
|
|
177
|
-
$Config['$types']['meta']
|
|
178
|
-
>({
|
|
179
|
-
meta: runtime?.defaultMeta,
|
|
180
|
-
}),
|
|
181
|
-
/**
|
|
182
|
-
* Create reusable middlewares
|
|
183
|
-
* @link https://trpc.io/docs/v11/server/middlewares
|
|
184
|
-
*/
|
|
185
|
-
middleware: createMiddlewareFactory<
|
|
186
|
-
$Config['$types']['ctx'],
|
|
187
|
-
$Config['$types']['meta']
|
|
188
|
-
>(),
|
|
189
|
-
/**
|
|
190
|
-
* Create a router
|
|
191
|
-
* @link https://trpc.io/docs/v11/server/routers
|
|
192
|
-
*/
|
|
193
|
-
router: createRouterFactory<$Config>(config),
|
|
194
|
-
/**
|
|
195
|
-
* Merge Routers
|
|
196
|
-
* @link https://trpc.io/docs/v11/server/merging-routers
|
|
197
|
-
*/
|
|
198
|
-
mergeRouters,
|
|
199
|
-
/**
|
|
200
|
-
* Create a server-side caller for a router
|
|
201
|
-
* @link https://trpc.io/docs/v11/server/server-side-calls
|
|
202
|
-
*/
|
|
203
|
-
createCallerFactory: createCallerFactory<$Config>(),
|
|
204
|
-
};
|
|
205
|
-
};
|
|
206
|
-
}
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { TRPCError } from './error/TRPCError';
|
|
2
|
-
import type { ParseFn } from './parser';
|
|
3
|
-
import type { ProcedureType } from './procedure';
|
|
4
|
-
import type { GetRawInputFn, Overwrite, Simplify } from './types';
|
|
5
|
-
import { isObject } from './utils';
|
|
6
|
-
|
|
7
|
-
/** @internal */
|
|
8
|
-
export const middlewareMarker = 'middlewareMarker' as 'middlewareMarker' & {
|
|
9
|
-
__brand: 'middlewareMarker';
|
|
10
|
-
};
|
|
11
|
-
type MiddlewareMarker = typeof middlewareMarker;
|
|
12
|
-
|
|
13
|
-
interface MiddlewareResultBase {
|
|
14
|
-
/**
|
|
15
|
-
* All middlewares should pass through their `next()`'s output.
|
|
16
|
-
* Requiring this marker makes sure that can't be forgotten at compile-time.
|
|
17
|
-
*/
|
|
18
|
-
readonly marker: MiddlewareMarker;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
interface MiddlewareOKResult<_TContextOverride> extends MiddlewareResultBase {
|
|
22
|
-
ok: true;
|
|
23
|
-
data: unknown;
|
|
24
|
-
// this could be extended with `input`/`rawInput` later
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
interface MiddlewareErrorResult<_TContextOverride>
|
|
28
|
-
extends MiddlewareResultBase {
|
|
29
|
-
ok: false;
|
|
30
|
-
error: TRPCError;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @internal
|
|
35
|
-
*/
|
|
36
|
-
export type MiddlewareResult<_TContextOverride> =
|
|
37
|
-
| MiddlewareErrorResult<_TContextOverride>
|
|
38
|
-
| MiddlewareOKResult<_TContextOverride>;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @internal
|
|
42
|
-
*/
|
|
43
|
-
export interface MiddlewareBuilder<
|
|
44
|
-
TContext,
|
|
45
|
-
TMeta,
|
|
46
|
-
TContextOverrides,
|
|
47
|
-
TInputIn,
|
|
48
|
-
> {
|
|
49
|
-
/**
|
|
50
|
-
* Create a new builder based on the current middleware builder
|
|
51
|
-
*/
|
|
52
|
-
unstable_pipe<$ContextOverridesOut>(
|
|
53
|
-
fn:
|
|
54
|
-
| MiddlewareFunction<
|
|
55
|
-
TContext,
|
|
56
|
-
TMeta,
|
|
57
|
-
TContextOverrides,
|
|
58
|
-
$ContextOverridesOut,
|
|
59
|
-
TInputIn
|
|
60
|
-
>
|
|
61
|
-
| MiddlewareBuilder<
|
|
62
|
-
Overwrite<TContext, TContextOverrides>,
|
|
63
|
-
TMeta,
|
|
64
|
-
$ContextOverridesOut,
|
|
65
|
-
TInputIn
|
|
66
|
-
>,
|
|
67
|
-
): MiddlewareBuilder<
|
|
68
|
-
TContext,
|
|
69
|
-
TMeta,
|
|
70
|
-
Overwrite<TContextOverrides, $ContextOverridesOut>,
|
|
71
|
-
TInputIn
|
|
72
|
-
>;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* List of middlewares within this middleware builder
|
|
76
|
-
*/
|
|
77
|
-
_middlewares: MiddlewareFunction<
|
|
78
|
-
TContext,
|
|
79
|
-
TMeta,
|
|
80
|
-
TContextOverrides,
|
|
81
|
-
object,
|
|
82
|
-
TInputIn
|
|
83
|
-
>[];
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @internal
|
|
88
|
-
*/
|
|
89
|
-
export type MiddlewareFunction<
|
|
90
|
-
TContext,
|
|
91
|
-
TMeta,
|
|
92
|
-
TContextOverridesIn,
|
|
93
|
-
$ContextOverridesOut,
|
|
94
|
-
TInputIn,
|
|
95
|
-
> = {
|
|
96
|
-
(opts: {
|
|
97
|
-
ctx: Simplify<Overwrite<TContext, TContextOverridesIn>>;
|
|
98
|
-
type: ProcedureType;
|
|
99
|
-
path: string;
|
|
100
|
-
input: TInputIn;
|
|
101
|
-
getRawInput: GetRawInputFn;
|
|
102
|
-
meta: TMeta | undefined;
|
|
103
|
-
next: {
|
|
104
|
-
(): Promise<MiddlewareResult<TContextOverridesIn>>;
|
|
105
|
-
<$ContextOverride>(opts: {
|
|
106
|
-
ctx?: $ContextOverride;
|
|
107
|
-
input?: unknown;
|
|
108
|
-
}): Promise<MiddlewareResult<$ContextOverride>>;
|
|
109
|
-
(opts: { getRawInput: GetRawInputFn }): Promise<
|
|
110
|
-
MiddlewareResult<TContextOverridesIn>
|
|
111
|
-
>;
|
|
112
|
-
};
|
|
113
|
-
}): Promise<MiddlewareResult<$ContextOverridesOut>>;
|
|
114
|
-
_type?: string | undefined;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
export type AnyMiddlewareFunction = MiddlewareFunction<any, any, any, any, any>;
|
|
118
|
-
export type AnyMiddlewareBuilder = MiddlewareBuilder<any, any, any, any>;
|
|
119
|
-
/**
|
|
120
|
-
* @internal
|
|
121
|
-
*/
|
|
122
|
-
export function createMiddlewareFactory<TContext, TMeta, TInputIn = unknown>() {
|
|
123
|
-
function createMiddlewareInner(
|
|
124
|
-
middlewares: AnyMiddlewareFunction[],
|
|
125
|
-
): AnyMiddlewareBuilder {
|
|
126
|
-
return {
|
|
127
|
-
_middlewares: middlewares,
|
|
128
|
-
unstable_pipe(middlewareBuilderOrFn) {
|
|
129
|
-
const pipedMiddleware =
|
|
130
|
-
'_middlewares' in middlewareBuilderOrFn
|
|
131
|
-
? middlewareBuilderOrFn._middlewares
|
|
132
|
-
: [middlewareBuilderOrFn];
|
|
133
|
-
|
|
134
|
-
return createMiddlewareInner([...middlewares, ...pipedMiddleware]);
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
function createMiddleware<$ContextOverrides>(
|
|
140
|
-
fn: MiddlewareFunction<
|
|
141
|
-
TContext,
|
|
142
|
-
TMeta,
|
|
143
|
-
object,
|
|
144
|
-
$ContextOverrides,
|
|
145
|
-
TInputIn
|
|
146
|
-
>,
|
|
147
|
-
): MiddlewareBuilder<TContext, TMeta, $ContextOverrides, TInputIn> {
|
|
148
|
-
return createMiddlewareInner([fn]);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return createMiddleware;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Create a standalone middleware
|
|
156
|
-
* @link https://trpc.io/docs/v11/server/middlewares#experimental-standalone-middlewares
|
|
157
|
-
*/
|
|
158
|
-
export const experimental_standaloneMiddleware = <
|
|
159
|
-
TCtx extends {
|
|
160
|
-
ctx?: object;
|
|
161
|
-
meta?: object;
|
|
162
|
-
input?: unknown;
|
|
163
|
-
},
|
|
164
|
-
>() => ({
|
|
165
|
-
create: createMiddlewareFactory<
|
|
166
|
-
TCtx extends { ctx: infer T extends object } ? T : any,
|
|
167
|
-
TCtx extends { meta: infer T extends object } ? T : object,
|
|
168
|
-
TCtx extends { input: infer T } ? T : unknown
|
|
169
|
-
>(),
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* @internal
|
|
174
|
-
* Please note, `trpc-openapi` uses this function.
|
|
175
|
-
*/
|
|
176
|
-
export function createInputMiddleware<TInput>(parse: ParseFn<TInput>) {
|
|
177
|
-
const inputMiddleware: AnyMiddlewareFunction =
|
|
178
|
-
async function inputValidatorMiddleware(opts) {
|
|
179
|
-
let parsedInput: ReturnType<typeof parse>;
|
|
180
|
-
|
|
181
|
-
const rawInput = await opts.getRawInput();
|
|
182
|
-
try {
|
|
183
|
-
parsedInput = await parse(rawInput);
|
|
184
|
-
} catch (cause) {
|
|
185
|
-
throw new TRPCError({
|
|
186
|
-
code: 'BAD_REQUEST',
|
|
187
|
-
cause,
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Multiple input parsers
|
|
192
|
-
const combinedInput =
|
|
193
|
-
isObject(opts.input) && isObject(parsedInput)
|
|
194
|
-
? {
|
|
195
|
-
...opts.input,
|
|
196
|
-
...parsedInput,
|
|
197
|
-
}
|
|
198
|
-
: parsedInput;
|
|
199
|
-
|
|
200
|
-
return opts.next({ input: combinedInput });
|
|
201
|
-
};
|
|
202
|
-
inputMiddleware._type = 'input';
|
|
203
|
-
return inputMiddleware;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* @internal
|
|
208
|
-
*/
|
|
209
|
-
export function createOutputMiddleware<TOutput>(parse: ParseFn<TOutput>) {
|
|
210
|
-
const outputMiddleware: AnyMiddlewareFunction =
|
|
211
|
-
async function outputValidatorMiddleware({ next }) {
|
|
212
|
-
const result = await next();
|
|
213
|
-
if (!result.ok) {
|
|
214
|
-
// pass through failures without validating
|
|
215
|
-
return result;
|
|
216
|
-
}
|
|
217
|
-
try {
|
|
218
|
-
const data = await parse(result.data);
|
|
219
|
-
return {
|
|
220
|
-
...result,
|
|
221
|
-
data,
|
|
222
|
-
};
|
|
223
|
-
} catch (cause) {
|
|
224
|
-
throw new TRPCError({
|
|
225
|
-
message: 'Output validation failed',
|
|
226
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
227
|
-
cause,
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
outputMiddleware._type = 'output';
|
|
232
|
-
return outputMiddleware;
|
|
233
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type { inferObservableValue } from './observable';
|
|
2
|
-
export { isObservable, observable, observableToPromise } from './observable';
|
|
3
|
-
export { map, share, tap } from './operators';
|
|
4
|
-
export type {
|
|
5
|
-
Observable,
|
|
6
|
-
Observer,
|
|
7
|
-
TeardownLogic,
|
|
8
|
-
Unsubscribable,
|
|
9
|
-
UnsubscribeFn,
|
|
10
|
-
} from './types';
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { identity } from '../utils';
|
|
2
|
-
import type {
|
|
3
|
-
Observable,
|
|
4
|
-
Observer,
|
|
5
|
-
OperatorFunction,
|
|
6
|
-
TeardownLogic,
|
|
7
|
-
UnaryFunction,
|
|
8
|
-
} from './types';
|
|
9
|
-
|
|
10
|
-
/** @public */
|
|
11
|
-
export type inferObservableValue<TObservable> = TObservable extends Observable<
|
|
12
|
-
infer TValue,
|
|
13
|
-
unknown
|
|
14
|
-
>
|
|
15
|
-
? TValue
|
|
16
|
-
: never;
|
|
17
|
-
|
|
18
|
-
/** @public */
|
|
19
|
-
export function isObservable(x: unknown): x is Observable<unknown, unknown> {
|
|
20
|
-
return typeof x === 'object' && x !== null && 'subscribe' in x;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/** @public */
|
|
24
|
-
export function observable<TValue, TError = unknown>(
|
|
25
|
-
subscribe: (observer: Observer<TValue, TError>) => TeardownLogic,
|
|
26
|
-
): Observable<TValue, TError> {
|
|
27
|
-
const self: Observable<TValue, TError> = {
|
|
28
|
-
subscribe(observer) {
|
|
29
|
-
let teardownRef: TeardownLogic | null = null;
|
|
30
|
-
let isDone = false;
|
|
31
|
-
let unsubscribed = false;
|
|
32
|
-
let teardownImmediately = false;
|
|
33
|
-
function unsubscribe() {
|
|
34
|
-
if (teardownRef === null) {
|
|
35
|
-
teardownImmediately = true;
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (unsubscribed) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
unsubscribed = true;
|
|
42
|
-
|
|
43
|
-
if (typeof teardownRef === 'function') {
|
|
44
|
-
teardownRef();
|
|
45
|
-
} else if (teardownRef) {
|
|
46
|
-
teardownRef.unsubscribe();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
teardownRef = subscribe({
|
|
50
|
-
next(value) {
|
|
51
|
-
if (isDone) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
observer.next?.(value);
|
|
55
|
-
},
|
|
56
|
-
error(err) {
|
|
57
|
-
if (isDone) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
isDone = true;
|
|
61
|
-
observer.error?.(err);
|
|
62
|
-
unsubscribe();
|
|
63
|
-
},
|
|
64
|
-
complete() {
|
|
65
|
-
if (isDone) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
isDone = true;
|
|
69
|
-
observer.complete?.();
|
|
70
|
-
unsubscribe();
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
if (teardownImmediately) {
|
|
74
|
-
unsubscribe();
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
unsubscribe,
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
pipe(
|
|
81
|
-
...operations: OperatorFunction<any, any, any, any>[]
|
|
82
|
-
): Observable<any, any> {
|
|
83
|
-
return pipeFromArray(operations)(self) as any;
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
return self;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function pipeFromArray<TSource, TReturn>(
|
|
90
|
-
fns: UnaryFunction<TSource, TReturn>[],
|
|
91
|
-
): UnaryFunction<TSource, TReturn> {
|
|
92
|
-
if (fns.length === 0) {
|
|
93
|
-
return identity as UnaryFunction<any, any>;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (fns.length === 1) {
|
|
97
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
98
|
-
return fns[0]!;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return function piped(input: TSource): TReturn {
|
|
102
|
-
return fns.reduce(
|
|
103
|
-
(prev: any, fn: UnaryFunction<TSource, TReturn>) => fn(prev),
|
|
104
|
-
input as any,
|
|
105
|
-
);
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
class ObservableAbortError extends Error {
|
|
110
|
-
constructor(message: string) {
|
|
111
|
-
super(message);
|
|
112
|
-
this.name = 'ObservableAbortError';
|
|
113
|
-
Object.setPrototypeOf(this, ObservableAbortError.prototype);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/** @internal */
|
|
118
|
-
export function observableToPromise<TValue>(
|
|
119
|
-
observable: Observable<TValue, unknown>,
|
|
120
|
-
) {
|
|
121
|
-
let abort: () => void;
|
|
122
|
-
const promise = new Promise<TValue>((resolve, reject) => {
|
|
123
|
-
let isDone = false;
|
|
124
|
-
function onDone() {
|
|
125
|
-
if (isDone) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
isDone = true;
|
|
129
|
-
reject(new ObservableAbortError('This operation was aborted.'));
|
|
130
|
-
obs$.unsubscribe();
|
|
131
|
-
}
|
|
132
|
-
const obs$ = observable.subscribe({
|
|
133
|
-
next(data) {
|
|
134
|
-
isDone = true;
|
|
135
|
-
resolve(data);
|
|
136
|
-
onDone();
|
|
137
|
-
},
|
|
138
|
-
error(data) {
|
|
139
|
-
isDone = true;
|
|
140
|
-
reject(data);
|
|
141
|
-
onDone();
|
|
142
|
-
},
|
|
143
|
-
complete() {
|
|
144
|
-
isDone = true;
|
|
145
|
-
onDone();
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
abort = onDone;
|
|
149
|
-
});
|
|
150
|
-
return {
|
|
151
|
-
promise,
|
|
152
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
153
|
-
abort: abort!,
|
|
154
|
-
};
|
|
155
|
-
}
|