@orpc/server 0.0.0-next.3f6c426 → 0.0.0-next.43889a7
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/{chunk-B2EZJB7X.js → chunk-26GHKV43.js} +19 -21
- package/dist/{chunk-6A7XHEBH.js → chunk-LDIL7OEP.js} +87 -59
- package/dist/chunk-WUOGVGWG.js +1 -0
- package/dist/fetch.js +5 -22
- package/dist/hono.js +30 -0
- package/dist/index.js +702 -172
- package/dist/next.js +36 -0
- package/dist/node.js +71 -29
- package/dist/src/adapters/fetch/index.d.ts +0 -1
- package/dist/src/adapters/fetch/orpc-handler.d.ts +9 -9
- package/dist/src/adapters/fetch/orpc-payload-codec.d.ts +1 -1
- package/dist/src/adapters/fetch/types.d.ts +12 -7
- package/dist/src/adapters/hono/index.d.ts +3 -0
- package/dist/src/adapters/hono/middleware.d.ts +12 -0
- package/dist/src/adapters/next/index.d.ts +3 -0
- package/dist/src/adapters/next/serve.d.ts +19 -0
- package/dist/src/adapters/node/index.d.ts +1 -1
- package/dist/src/adapters/node/orpc-handler.d.ts +8 -8
- package/dist/src/adapters/node/request-listener.d.ts +28 -0
- package/dist/src/adapters/node/types.d.ts +11 -10
- package/dist/src/builder-with-errors-middlewares.d.ts +49 -0
- package/dist/src/builder-with-errors.d.ts +49 -0
- package/dist/src/builder-with-middlewares.d.ts +49 -0
- package/dist/src/builder.d.ts +33 -22
- package/dist/src/config.d.ts +6 -0
- package/dist/src/context.d.ts +10 -0
- package/dist/src/error.d.ts +10 -0
- package/dist/src/hidden.d.ts +2 -2
- package/dist/src/implementer-chainable.d.ts +11 -5
- package/dist/src/index.d.ts +6 -5
- package/dist/src/lazy-decorated.d.ts +4 -6
- package/dist/src/middleware-decorated.d.ts +6 -5
- package/dist/src/middleware.d.ts +29 -13
- package/dist/src/procedure-builder-with-input.d.ts +35 -0
- package/dist/src/procedure-builder-with-output.d.ts +34 -0
- package/dist/src/procedure-builder.d.ts +24 -18
- package/dist/src/procedure-client.d.ts +9 -22
- package/dist/src/procedure-decorated.d.ts +22 -11
- package/dist/src/procedure-implementer.d.ts +18 -13
- package/dist/src/procedure-utils.d.ts +17 -0
- package/dist/src/procedure.d.ts +37 -13
- package/dist/src/router-builder.d.ts +20 -16
- package/dist/src/router-client.d.ts +7 -6
- package/dist/src/router-implementer.d.ts +12 -10
- package/dist/src/router.d.ts +6 -6
- package/dist/src/types.d.ts +2 -3
- package/package.json +18 -8
- package/dist/src/adapters/fetch/composite-handler.d.ts +0 -8
- package/dist/src/adapters/node/composite-handler.d.ts +0 -9
- package/dist/src/utils.d.ts +0 -3
package/dist/index.js
CHANGED
@@ -1,39 +1,48 @@
|
|
1
1
|
import {
|
2
2
|
LAZY_LOADER_SYMBOL,
|
3
3
|
Procedure,
|
4
|
+
createORPCErrorConstructorMap,
|
4
5
|
createProcedureClient,
|
5
6
|
flatLazy,
|
6
7
|
getRouterChild,
|
7
8
|
isLazy,
|
8
9
|
isProcedure,
|
9
10
|
lazy,
|
10
|
-
|
11
|
+
middlewareOutputFn,
|
11
12
|
unlazy
|
12
|
-
} from "./chunk-
|
13
|
+
} from "./chunk-LDIL7OEP.js";
|
13
14
|
|
14
15
|
// src/builder.ts
|
16
|
+
import { ContractProcedure as ContractProcedure4 } from "@orpc/contract";
|
17
|
+
|
18
|
+
// src/builder-with-errors.ts
|
19
|
+
import { ContractProcedure as ContractProcedure2 } from "@orpc/contract";
|
20
|
+
|
21
|
+
// src/builder-with-errors-middlewares.ts
|
15
22
|
import { ContractProcedure } from "@orpc/contract";
|
16
23
|
|
17
|
-
// src/
|
18
|
-
import {
|
19
|
-
|
24
|
+
// src/procedure-builder.ts
|
25
|
+
import { ContractProcedureBuilder, DecoratedContractProcedure as DecoratedContractProcedure4 } from "@orpc/contract";
|
26
|
+
|
27
|
+
// src/procedure-builder-with-input.ts
|
28
|
+
import { ContractProcedureBuilderWithInput, DecoratedContractProcedure as DecoratedContractProcedure2 } from "@orpc/contract";
|
20
29
|
|
21
30
|
// src/middleware-decorated.ts
|
22
31
|
function decorateMiddleware(middleware) {
|
23
32
|
const decorated = middleware;
|
24
33
|
decorated.mapInput = (mapInput) => {
|
25
34
|
const mapped = decorateMiddleware(
|
26
|
-
(input, ...rest) => middleware(mapInput(input), ...rest)
|
35
|
+
(options, input, ...rest) => middleware(options, mapInput(input), ...rest)
|
27
36
|
);
|
28
37
|
return mapped;
|
29
38
|
};
|
30
39
|
decorated.concat = (concatMiddleware, mapInput) => {
|
31
40
|
const mapped = mapInput ? decorateMiddleware(concatMiddleware).mapInput(mapInput) : concatMiddleware;
|
32
|
-
const concatted = decorateMiddleware((
|
33
|
-
const next = async (
|
34
|
-
return mapped(
|
41
|
+
const concatted = decorateMiddleware((options, input, output, ...rest) => {
|
42
|
+
const next = async (...[nextOptions]) => {
|
43
|
+
return mapped({ ...options, context: { ...nextOptions?.context, ...options.context } }, input, output, ...rest);
|
35
44
|
};
|
36
|
-
const merged = middleware(
|
45
|
+
const merged = middleware({ ...options, next }, input, output, ...rest);
|
37
46
|
return merged;
|
38
47
|
});
|
39
48
|
return concatted;
|
@@ -43,58 +52,82 @@ function decorateMiddleware(middleware) {
|
|
43
52
|
|
44
53
|
// src/procedure-decorated.ts
|
45
54
|
import { DecoratedContractProcedure } from "@orpc/contract";
|
46
|
-
|
47
|
-
|
48
|
-
procedure
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
55
|
+
var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
|
56
|
+
static decorate(procedure) {
|
57
|
+
if (procedure instanceof _DecoratedProcedure) {
|
58
|
+
return procedure;
|
59
|
+
}
|
60
|
+
return new _DecoratedProcedure(procedure["~orpc"]);
|
61
|
+
}
|
62
|
+
prefix(prefix) {
|
63
|
+
return new _DecoratedProcedure({
|
64
|
+
...this["~orpc"],
|
65
|
+
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).prefix(prefix)
|
66
|
+
});
|
67
|
+
}
|
68
|
+
route(route) {
|
69
|
+
return new _DecoratedProcedure({
|
70
|
+
...this["~orpc"],
|
71
|
+
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).route(route)
|
72
|
+
});
|
73
|
+
}
|
74
|
+
errors(errors) {
|
75
|
+
return new _DecoratedProcedure({
|
76
|
+
...this["~orpc"],
|
77
|
+
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).errors(errors)
|
78
|
+
});
|
79
|
+
}
|
80
|
+
use(middleware, mapInput) {
|
67
81
|
const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
68
|
-
return
|
69
|
-
...
|
70
|
-
middlewares: [...
|
71
|
-
})
|
72
|
-
}
|
73
|
-
|
74
|
-
return
|
75
|
-
...
|
76
|
-
contract: DecoratedContractProcedure.decorate(
|
77
|
-
})
|
78
|
-
}
|
79
|
-
|
80
|
-
|
82
|
+
return new _DecoratedProcedure({
|
83
|
+
...this["~orpc"],
|
84
|
+
middlewares: [...this["~orpc"].middlewares, middleware_]
|
85
|
+
});
|
86
|
+
}
|
87
|
+
unshiftTag(...tags) {
|
88
|
+
return new _DecoratedProcedure({
|
89
|
+
...this["~orpc"],
|
90
|
+
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).unshiftTag(...tags)
|
91
|
+
});
|
92
|
+
}
|
93
|
+
unshiftMiddleware(...middlewares) {
|
94
|
+
const castedMiddlewares = middlewares;
|
95
|
+
if (this["~orpc"].middlewares.length) {
|
81
96
|
let min = 0;
|
82
|
-
for (let i = 0; i <
|
83
|
-
const index =
|
97
|
+
for (let i = 0; i < this["~orpc"].middlewares.length; i++) {
|
98
|
+
const index = castedMiddlewares.indexOf(this["~orpc"].middlewares[i], min);
|
84
99
|
if (index === -1) {
|
85
|
-
|
100
|
+
castedMiddlewares.push(...this["~orpc"].middlewares.slice(i));
|
86
101
|
break;
|
87
102
|
}
|
88
103
|
min = index + 1;
|
89
104
|
}
|
90
105
|
}
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
}
|
106
|
+
const numNewMiddlewares = castedMiddlewares.length - this["~orpc"].middlewares.length;
|
107
|
+
const decorated = new _DecoratedProcedure({
|
108
|
+
...this["~orpc"],
|
109
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + numNewMiddlewares,
|
110
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + numNewMiddlewares,
|
111
|
+
middlewares: castedMiddlewares
|
112
|
+
});
|
113
|
+
return decorated;
|
114
|
+
}
|
115
|
+
/**
|
116
|
+
* Make this procedure callable (works like a function while still being a procedure).
|
117
|
+
*/
|
118
|
+
callable(...rest) {
|
119
|
+
return Object.assign(createProcedureClient(this, ...rest), {
|
120
|
+
"~type": "Procedure",
|
121
|
+
"~orpc": this["~orpc"]
|
122
|
+
});
|
123
|
+
}
|
124
|
+
/**
|
125
|
+
* Make this procedure compatible with server action (the same as .callable, but the type is compatible with server action).
|
126
|
+
*/
|
127
|
+
actionable(...rest) {
|
128
|
+
return this.callable(...rest);
|
129
|
+
}
|
130
|
+
};
|
98
131
|
|
99
132
|
// src/procedure-implementer.ts
|
100
133
|
var ProcedureImplementer = class _ProcedureImplementer {
|
@@ -107,15 +140,146 @@ var ProcedureImplementer = class _ProcedureImplementer {
|
|
107
140
|
const mappedMiddleware = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
108
141
|
return new _ProcedureImplementer({
|
109
142
|
...this["~orpc"],
|
110
|
-
middlewares: [...this["~orpc"].middlewares
|
143
|
+
middlewares: [...this["~orpc"].middlewares, mappedMiddleware]
|
111
144
|
});
|
112
145
|
}
|
113
146
|
handler(handler) {
|
114
|
-
return
|
115
|
-
|
147
|
+
return new DecoratedProcedure({
|
148
|
+
...this["~orpc"],
|
149
|
+
handler
|
150
|
+
});
|
151
|
+
}
|
152
|
+
};
|
153
|
+
|
154
|
+
// src/procedure-builder-with-input.ts
|
155
|
+
var ProcedureBuilderWithInput = class _ProcedureBuilderWithInput {
|
156
|
+
"~type" = "ProcedureBuilderWithInput";
|
157
|
+
"~orpc";
|
158
|
+
constructor(def) {
|
159
|
+
this["~orpc"] = def;
|
160
|
+
}
|
161
|
+
errors(errors) {
|
162
|
+
return new _ProcedureBuilderWithInput({
|
163
|
+
...this["~orpc"],
|
164
|
+
contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).errors(errors)
|
165
|
+
});
|
166
|
+
}
|
167
|
+
route(route) {
|
168
|
+
return new _ProcedureBuilderWithInput({
|
169
|
+
...this["~orpc"],
|
170
|
+
contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).route(route)
|
171
|
+
});
|
172
|
+
}
|
173
|
+
use(middleware, mapInput) {
|
174
|
+
const maybeWithMapInput = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
175
|
+
return new _ProcedureBuilderWithInput({
|
176
|
+
...this["~orpc"],
|
177
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
178
|
+
middlewares: [...this["~orpc"].middlewares, maybeWithMapInput]
|
179
|
+
});
|
180
|
+
}
|
181
|
+
output(schema, example) {
|
182
|
+
return new ProcedureImplementer({
|
183
|
+
...this["~orpc"],
|
184
|
+
contract: new ContractProcedureBuilderWithInput(this["~orpc"].contract["~orpc"]).output(schema, example)
|
185
|
+
});
|
186
|
+
}
|
187
|
+
handler(handler) {
|
188
|
+
return new DecoratedProcedure({
|
189
|
+
...this["~orpc"],
|
190
|
+
handler
|
191
|
+
});
|
192
|
+
}
|
193
|
+
};
|
194
|
+
|
195
|
+
// src/procedure-builder-with-output.ts
|
196
|
+
import { ContractProcedureBuilderWithOutput, DecoratedContractProcedure as DecoratedContractProcedure3 } from "@orpc/contract";
|
197
|
+
var ProcedureBuilderWithOutput = class _ProcedureBuilderWithOutput {
|
198
|
+
"~type" = "ProcedureBuilderWithOutput";
|
199
|
+
"~orpc";
|
200
|
+
constructor(def) {
|
201
|
+
this["~orpc"] = def;
|
202
|
+
}
|
203
|
+
errors(errors) {
|
204
|
+
return new _ProcedureBuilderWithOutput({
|
205
|
+
...this["~orpc"],
|
206
|
+
contract: DecoratedContractProcedure3.decorate(this["~orpc"].contract).errors(errors)
|
207
|
+
});
|
208
|
+
}
|
209
|
+
route(route) {
|
210
|
+
return new _ProcedureBuilderWithOutput({
|
211
|
+
...this["~orpc"],
|
212
|
+
contract: DecoratedContractProcedure3.decorate(this["~orpc"].contract).route(route)
|
213
|
+
});
|
214
|
+
}
|
215
|
+
use(middleware) {
|
216
|
+
const builder = new _ProcedureBuilderWithOutput({
|
116
217
|
contract: this["~orpc"].contract,
|
218
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex,
|
219
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
220
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
221
|
+
});
|
222
|
+
return builder;
|
223
|
+
}
|
224
|
+
input(schema, example) {
|
225
|
+
return new ProcedureImplementer({
|
226
|
+
...this["~orpc"],
|
227
|
+
contract: new ContractProcedureBuilderWithOutput(this["~orpc"].contract["~orpc"]).input(schema, example)
|
228
|
+
});
|
229
|
+
}
|
230
|
+
handler(handler) {
|
231
|
+
return new DecoratedProcedure({
|
232
|
+
...this["~orpc"],
|
117
233
|
handler
|
118
|
-
})
|
234
|
+
});
|
235
|
+
}
|
236
|
+
};
|
237
|
+
|
238
|
+
// src/procedure-builder.ts
|
239
|
+
var ProcedureBuilder = class _ProcedureBuilder {
|
240
|
+
"~type" = "ProcedureBuilder";
|
241
|
+
"~orpc";
|
242
|
+
constructor(def) {
|
243
|
+
this["~orpc"] = def;
|
244
|
+
}
|
245
|
+
errors(errors) {
|
246
|
+
return new _ProcedureBuilder({
|
247
|
+
...this["~orpc"],
|
248
|
+
contract: DecoratedContractProcedure4.decorate(this["~orpc"].contract).errors(errors)
|
249
|
+
});
|
250
|
+
}
|
251
|
+
route(route) {
|
252
|
+
return new _ProcedureBuilder({
|
253
|
+
...this["~orpc"],
|
254
|
+
contract: DecoratedContractProcedure4.decorate(this["~orpc"].contract).route(route)
|
255
|
+
});
|
256
|
+
}
|
257
|
+
use(middleware) {
|
258
|
+
const builder = new _ProcedureBuilder({
|
259
|
+
contract: this["~orpc"].contract,
|
260
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
261
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
262
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
263
|
+
});
|
264
|
+
return builder;
|
265
|
+
}
|
266
|
+
input(schema, example) {
|
267
|
+
return new ProcedureBuilderWithInput({
|
268
|
+
...this["~orpc"],
|
269
|
+
contract: new ContractProcedureBuilder(this["~orpc"].contract["~orpc"]).input(schema, example)
|
270
|
+
});
|
271
|
+
}
|
272
|
+
output(schema, example) {
|
273
|
+
return new ProcedureBuilderWithOutput({
|
274
|
+
...this["~orpc"],
|
275
|
+
contract: new ContractProcedureBuilder(this["~orpc"].contract["~orpc"]).output(schema, example)
|
276
|
+
});
|
277
|
+
}
|
278
|
+
handler(handler) {
|
279
|
+
return new DecoratedProcedure({
|
280
|
+
...this["~orpc"],
|
281
|
+
handler
|
282
|
+
});
|
119
283
|
}
|
120
284
|
};
|
121
285
|
|
@@ -153,31 +317,10 @@ function getLazyRouterPrefix(obj) {
|
|
153
317
|
return obj[LAZY_ROUTER_PREFIX_SYMBOL];
|
154
318
|
}
|
155
319
|
|
156
|
-
// src/lazy-utils.ts
|
157
|
-
function createLazyProcedureFormAnyLazy(lazied) {
|
158
|
-
const lazyProcedure = lazy(async () => {
|
159
|
-
const { default: maybeProcedure } = await unlazy(flatLazy(lazied));
|
160
|
-
if (!isProcedure(maybeProcedure)) {
|
161
|
-
throw new Error(`
|
162
|
-
Expected a lazy<procedure> but got lazy<unknown>.
|
163
|
-
This should be caught by TypeScript compilation.
|
164
|
-
Please report this issue if this makes you feel uncomfortable.
|
165
|
-
`);
|
166
|
-
}
|
167
|
-
return { default: maybeProcedure };
|
168
|
-
});
|
169
|
-
return lazyProcedure;
|
170
|
-
}
|
171
|
-
|
172
320
|
// src/lazy-decorated.ts
|
173
321
|
function decorateLazy(lazied) {
|
174
322
|
const flattenLazy = flatLazy(lazied);
|
175
|
-
const
|
176
|
-
procedure: createLazyProcedureFormAnyLazy(flattenLazy),
|
177
|
-
context: void 0
|
178
|
-
});
|
179
|
-
Object.assign(procedureProcedureClient, flattenLazy);
|
180
|
-
const recursive = new Proxy(procedureProcedureClient, {
|
323
|
+
const recursive = new Proxy(flattenLazy, {
|
181
324
|
get(target, key) {
|
182
325
|
if (typeof key !== "string") {
|
183
326
|
return Reflect.get(target, key);
|
@@ -214,12 +357,24 @@ var RouterBuilder = class _RouterBuilder {
|
|
214
357
|
tags: [...this["~orpc"].tags ?? [], ...tags]
|
215
358
|
});
|
216
359
|
}
|
217
|
-
|
360
|
+
errors(errors) {
|
218
361
|
return new _RouterBuilder({
|
219
362
|
...this["~orpc"],
|
220
|
-
|
363
|
+
errorMap: {
|
364
|
+
...this["~orpc"].errorMap,
|
365
|
+
...errors
|
366
|
+
}
|
221
367
|
});
|
222
368
|
}
|
369
|
+
use(middleware) {
|
370
|
+
const builder = new _RouterBuilder({
|
371
|
+
tags: this["~orpc"].tags,
|
372
|
+
prefix: this["~orpc"].prefix,
|
373
|
+
errorMap: this["~orpc"].errorMap,
|
374
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
375
|
+
});
|
376
|
+
return builder;
|
377
|
+
}
|
223
378
|
router(router) {
|
224
379
|
const adapted = adapt(router, this["~orpc"]);
|
225
380
|
return adapted;
|
@@ -244,7 +399,7 @@ function adapt(item, options) {
|
|
244
399
|
return adaptedLazy;
|
245
400
|
}
|
246
401
|
if (isProcedure(item)) {
|
247
|
-
let decorated =
|
402
|
+
let decorated = DecoratedProcedure.decorate(item);
|
248
403
|
if (options.tags?.length) {
|
249
404
|
decorated = decorated.unshiftTag(...options.tags);
|
250
405
|
}
|
@@ -254,6 +409,9 @@ function adapt(item, options) {
|
|
254
409
|
if (options.middlewares?.length) {
|
255
410
|
decorated = decorated.unshiftMiddleware(...options.middlewares);
|
256
411
|
}
|
412
|
+
if (Object.keys(options.errorMap).length) {
|
413
|
+
decorated = decorated.errors(options.errorMap);
|
414
|
+
}
|
257
415
|
return decorated;
|
258
416
|
}
|
259
417
|
const adapted = {};
|
@@ -263,6 +421,246 @@ function adapt(item, options) {
|
|
263
421
|
return adapted;
|
264
422
|
}
|
265
423
|
|
424
|
+
// src/builder-with-errors-middlewares.ts
|
425
|
+
var BuilderWithErrorsMiddlewares = class _BuilderWithErrorsMiddlewares {
|
426
|
+
"~type" = "BuilderWithErrorsMiddlewares";
|
427
|
+
"~orpc";
|
428
|
+
constructor(def) {
|
429
|
+
this["~orpc"] = def;
|
430
|
+
}
|
431
|
+
errors(errors) {
|
432
|
+
return new _BuilderWithErrorsMiddlewares({
|
433
|
+
...this["~orpc"],
|
434
|
+
errorMap: {
|
435
|
+
...this["~orpc"].errorMap,
|
436
|
+
...errors
|
437
|
+
}
|
438
|
+
});
|
439
|
+
}
|
440
|
+
use(middleware) {
|
441
|
+
const builder = new _BuilderWithErrorsMiddlewares({
|
442
|
+
config: this["~orpc"].config,
|
443
|
+
errorMap: this["~orpc"].errorMap,
|
444
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
445
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
446
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
447
|
+
});
|
448
|
+
return builder;
|
449
|
+
}
|
450
|
+
route(route) {
|
451
|
+
return new ProcedureBuilder({
|
452
|
+
...this["~orpc"],
|
453
|
+
contract: new ContractProcedure({
|
454
|
+
route: {
|
455
|
+
...this["~orpc"].config.initialRoute,
|
456
|
+
...route
|
457
|
+
},
|
458
|
+
InputSchema: void 0,
|
459
|
+
OutputSchema: void 0,
|
460
|
+
errorMap: this["~orpc"].errorMap
|
461
|
+
})
|
462
|
+
});
|
463
|
+
}
|
464
|
+
input(schema, example) {
|
465
|
+
return new ProcedureBuilderWithInput({
|
466
|
+
...this["~orpc"],
|
467
|
+
contract: new ContractProcedure({
|
468
|
+
route: this["~orpc"].config.initialRoute,
|
469
|
+
OutputSchema: void 0,
|
470
|
+
InputSchema: schema,
|
471
|
+
inputExample: example,
|
472
|
+
errorMap: this["~orpc"].errorMap
|
473
|
+
})
|
474
|
+
});
|
475
|
+
}
|
476
|
+
output(schema, example) {
|
477
|
+
return new ProcedureBuilderWithOutput({
|
478
|
+
...this["~orpc"],
|
479
|
+
contract: new ContractProcedure({
|
480
|
+
route: this["~orpc"].config.initialRoute,
|
481
|
+
InputSchema: void 0,
|
482
|
+
OutputSchema: schema,
|
483
|
+
outputExample: example,
|
484
|
+
errorMap: this["~orpc"].errorMap
|
485
|
+
})
|
486
|
+
});
|
487
|
+
}
|
488
|
+
handler(handler) {
|
489
|
+
return new DecoratedProcedure({
|
490
|
+
...this["~orpc"],
|
491
|
+
contract: new ContractProcedure({
|
492
|
+
route: this["~orpc"].config.initialRoute,
|
493
|
+
InputSchema: void 0,
|
494
|
+
OutputSchema: void 0,
|
495
|
+
errorMap: this["~orpc"].errorMap
|
496
|
+
}),
|
497
|
+
handler
|
498
|
+
});
|
499
|
+
}
|
500
|
+
prefix(prefix) {
|
501
|
+
return new RouterBuilder({
|
502
|
+
...this["~orpc"],
|
503
|
+
prefix
|
504
|
+
});
|
505
|
+
}
|
506
|
+
tag(...tags) {
|
507
|
+
return new RouterBuilder({
|
508
|
+
...this["~orpc"],
|
509
|
+
tags
|
510
|
+
});
|
511
|
+
}
|
512
|
+
router(router) {
|
513
|
+
return new RouterBuilder(this["~orpc"]).router(router);
|
514
|
+
}
|
515
|
+
lazy(loader) {
|
516
|
+
return new RouterBuilder(this["~orpc"]).lazy(loader);
|
517
|
+
}
|
518
|
+
};
|
519
|
+
|
520
|
+
// src/config.ts
|
521
|
+
var DEFAULT_CONFIG = {
|
522
|
+
initialInputValidationIndex: 0,
|
523
|
+
initialOutputValidationIndex: 0
|
524
|
+
};
|
525
|
+
function fallbackConfig(key, value) {
|
526
|
+
if (value === void 0) {
|
527
|
+
return DEFAULT_CONFIG[key];
|
528
|
+
}
|
529
|
+
return value;
|
530
|
+
}
|
531
|
+
|
532
|
+
// src/builder-with-errors.ts
|
533
|
+
var BuilderWithErrors = class _BuilderWithErrors {
|
534
|
+
"~type" = "BuilderWithErrors";
|
535
|
+
"~orpc";
|
536
|
+
constructor(def) {
|
537
|
+
this["~orpc"] = def;
|
538
|
+
}
|
539
|
+
config(config) {
|
540
|
+
return new _BuilderWithErrors({
|
541
|
+
...this["~orpc"],
|
542
|
+
config: {
|
543
|
+
...this["~orpc"].config,
|
544
|
+
...config
|
545
|
+
}
|
546
|
+
});
|
547
|
+
}
|
548
|
+
context() {
|
549
|
+
return this;
|
550
|
+
}
|
551
|
+
errors(errors) {
|
552
|
+
return new _BuilderWithErrors({
|
553
|
+
...this["~orpc"],
|
554
|
+
errorMap: {
|
555
|
+
...this["~orpc"].errorMap,
|
556
|
+
...errors
|
557
|
+
}
|
558
|
+
});
|
559
|
+
}
|
560
|
+
middleware(middleware) {
|
561
|
+
return decorateMiddleware(middleware);
|
562
|
+
}
|
563
|
+
use(middleware) {
|
564
|
+
return new BuilderWithErrorsMiddlewares({
|
565
|
+
...this["~orpc"],
|
566
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + 1,
|
567
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + 1,
|
568
|
+
middlewares: [middleware]
|
569
|
+
});
|
570
|
+
}
|
571
|
+
route(route) {
|
572
|
+
return new ProcedureBuilder({
|
573
|
+
middlewares: [],
|
574
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
575
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
576
|
+
contract: new ContractProcedure2({
|
577
|
+
route: {
|
578
|
+
...this["~orpc"].config.initialRoute,
|
579
|
+
...route
|
580
|
+
},
|
581
|
+
InputSchema: void 0,
|
582
|
+
OutputSchema: void 0,
|
583
|
+
errorMap: this["~orpc"].errorMap
|
584
|
+
})
|
585
|
+
});
|
586
|
+
}
|
587
|
+
input(schema, example) {
|
588
|
+
return new ProcedureBuilderWithInput({
|
589
|
+
middlewares: [],
|
590
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
591
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
592
|
+
contract: new ContractProcedure2({
|
593
|
+
route: this["~orpc"].config.initialRoute,
|
594
|
+
OutputSchema: void 0,
|
595
|
+
InputSchema: schema,
|
596
|
+
inputExample: example,
|
597
|
+
errorMap: this["~orpc"].errorMap
|
598
|
+
})
|
599
|
+
});
|
600
|
+
}
|
601
|
+
output(schema, example) {
|
602
|
+
return new ProcedureBuilderWithOutput({
|
603
|
+
middlewares: [],
|
604
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
605
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
606
|
+
contract: new ContractProcedure2({
|
607
|
+
route: this["~orpc"].config.initialRoute,
|
608
|
+
InputSchema: void 0,
|
609
|
+
OutputSchema: schema,
|
610
|
+
outputExample: example,
|
611
|
+
errorMap: this["~orpc"].errorMap
|
612
|
+
})
|
613
|
+
});
|
614
|
+
}
|
615
|
+
handler(handler) {
|
616
|
+
return new DecoratedProcedure({
|
617
|
+
middlewares: [],
|
618
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
619
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
620
|
+
contract: new ContractProcedure2({
|
621
|
+
route: this["~orpc"].config.initialRoute,
|
622
|
+
InputSchema: void 0,
|
623
|
+
OutputSchema: void 0,
|
624
|
+
errorMap: this["~orpc"].errorMap
|
625
|
+
}),
|
626
|
+
handler
|
627
|
+
});
|
628
|
+
}
|
629
|
+
prefix(prefix) {
|
630
|
+
return new RouterBuilder({
|
631
|
+
middlewares: [],
|
632
|
+
errorMap: this["~orpc"].errorMap,
|
633
|
+
prefix
|
634
|
+
});
|
635
|
+
}
|
636
|
+
tag(...tags) {
|
637
|
+
return new RouterBuilder({
|
638
|
+
middlewares: [],
|
639
|
+
errorMap: this["~orpc"].errorMap,
|
640
|
+
tags
|
641
|
+
});
|
642
|
+
}
|
643
|
+
router(router) {
|
644
|
+
return new RouterBuilder({
|
645
|
+
middlewares: [],
|
646
|
+
...this["~orpc"]
|
647
|
+
}).router(router);
|
648
|
+
}
|
649
|
+
lazy(loader) {
|
650
|
+
return new RouterBuilder({
|
651
|
+
middlewares: [],
|
652
|
+
...this["~orpc"]
|
653
|
+
}).lazy(loader);
|
654
|
+
}
|
655
|
+
};
|
656
|
+
|
657
|
+
// src/builder-with-middlewares.ts
|
658
|
+
import { ContractProcedure as ContractProcedure3 } from "@orpc/contract";
|
659
|
+
|
660
|
+
// src/implementer-chainable.ts
|
661
|
+
import { isContractProcedure } from "@orpc/contract";
|
662
|
+
import { createCallableObject } from "@orpc/shared";
|
663
|
+
|
266
664
|
// src/router-implementer.ts
|
267
665
|
var RouterImplementer = class _RouterImplementer {
|
268
666
|
"~type" = "RouterImplementer";
|
@@ -271,37 +669,49 @@ var RouterImplementer = class _RouterImplementer {
|
|
271
669
|
this["~orpc"] = def;
|
272
670
|
}
|
273
671
|
use(middleware) {
|
274
|
-
|
275
|
-
|
276
|
-
middlewares: [...this["~orpc"].middlewares
|
672
|
+
const builder = new _RouterImplementer({
|
673
|
+
contract: this["~orpc"].contract,
|
674
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
277
675
|
});
|
676
|
+
return builder;
|
278
677
|
}
|
279
678
|
router(router) {
|
280
|
-
const adapted = new RouterBuilder(
|
679
|
+
const adapted = new RouterBuilder({
|
680
|
+
...this["~orpc"],
|
681
|
+
errorMap: {}
|
682
|
+
}).router(router);
|
281
683
|
const contracted = setRouterContract(adapted, this["~orpc"].contract);
|
282
684
|
return contracted;
|
283
685
|
}
|
284
686
|
lazy(loader) {
|
285
|
-
const adapted = new RouterBuilder(
|
687
|
+
const adapted = new RouterBuilder({
|
688
|
+
...this["~orpc"],
|
689
|
+
errorMap: {}
|
690
|
+
}).lazy(loader);
|
286
691
|
const contracted = setRouterContract(adapted, this["~orpc"].contract);
|
287
692
|
return contracted;
|
288
693
|
}
|
289
694
|
};
|
290
695
|
|
291
696
|
// src/implementer-chainable.ts
|
292
|
-
function createChainableImplementer(contract,
|
697
|
+
function createChainableImplementer(contract, options) {
|
293
698
|
if (isContractProcedure(contract)) {
|
294
699
|
const implementer = new ProcedureImplementer({
|
295
700
|
contract,
|
296
|
-
middlewares
|
701
|
+
middlewares: options.middlewares,
|
702
|
+
inputValidationIndex: options.inputValidationIndex,
|
703
|
+
outputValidationIndex: options.outputValidationIndex
|
297
704
|
});
|
298
705
|
return implementer;
|
299
706
|
}
|
300
707
|
const chainable = {};
|
301
708
|
for (const key in contract) {
|
302
|
-
chainable[key] = createChainableImplementer(contract[key],
|
709
|
+
chainable[key] = createChainableImplementer(contract[key], options);
|
303
710
|
}
|
304
|
-
const routerImplementer = new RouterImplementer({
|
711
|
+
const routerImplementer = new RouterImplementer({
|
712
|
+
contract,
|
713
|
+
middlewares: options.middlewares
|
714
|
+
});
|
305
715
|
const merged = new Proxy(chainable, {
|
306
716
|
get(target, key) {
|
307
717
|
const next = Reflect.get(target, key);
|
@@ -318,52 +728,106 @@ function createChainableImplementer(contract, middlewares) {
|
|
318
728
|
return merged;
|
319
729
|
}
|
320
730
|
|
321
|
-
// src/
|
322
|
-
|
323
|
-
|
324
|
-
} from "@orpc/contract";
|
325
|
-
var ProcedureBuilder = class _ProcedureBuilder {
|
326
|
-
"~type" = "ProcedureBuilder";
|
731
|
+
// src/builder-with-middlewares.ts
|
732
|
+
var BuilderWithMiddlewares = class _BuilderWithMiddlewares {
|
733
|
+
"~type" = "BuilderHasMiddlewares";
|
327
734
|
"~orpc";
|
328
735
|
constructor(def) {
|
329
736
|
this["~orpc"] = def;
|
330
737
|
}
|
738
|
+
use(middleware) {
|
739
|
+
const builder = new _BuilderWithMiddlewares({
|
740
|
+
config: this["~orpc"].config,
|
741
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
742
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
743
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
744
|
+
});
|
745
|
+
return builder;
|
746
|
+
}
|
747
|
+
errors(errors) {
|
748
|
+
return new BuilderWithErrorsMiddlewares({
|
749
|
+
...this["~orpc"],
|
750
|
+
errorMap: errors
|
751
|
+
});
|
752
|
+
}
|
331
753
|
route(route) {
|
332
|
-
return new
|
754
|
+
return new ProcedureBuilder({
|
333
755
|
...this["~orpc"],
|
334
|
-
contract:
|
756
|
+
contract: new ContractProcedure3({
|
757
|
+
route: {
|
758
|
+
...this["~orpc"].config.initialRoute,
|
759
|
+
...route
|
760
|
+
},
|
761
|
+
InputSchema: void 0,
|
762
|
+
OutputSchema: void 0,
|
763
|
+
errorMap: {}
|
764
|
+
})
|
335
765
|
});
|
336
766
|
}
|
337
767
|
input(schema, example) {
|
338
|
-
return new
|
768
|
+
return new ProcedureBuilderWithInput({
|
339
769
|
...this["~orpc"],
|
340
|
-
contract:
|
770
|
+
contract: new ContractProcedure3({
|
771
|
+
route: this["~orpc"].config.initialRoute,
|
772
|
+
OutputSchema: void 0,
|
773
|
+
InputSchema: schema,
|
774
|
+
inputExample: example,
|
775
|
+
errorMap: {}
|
776
|
+
})
|
341
777
|
});
|
342
778
|
}
|
343
779
|
output(schema, example) {
|
344
|
-
return new
|
780
|
+
return new ProcedureBuilderWithOutput({
|
345
781
|
...this["~orpc"],
|
346
|
-
contract:
|
782
|
+
contract: new ContractProcedure3({
|
783
|
+
route: this["~orpc"].config.initialRoute,
|
784
|
+
InputSchema: void 0,
|
785
|
+
OutputSchema: schema,
|
786
|
+
outputExample: example,
|
787
|
+
errorMap: {}
|
788
|
+
})
|
347
789
|
});
|
348
790
|
}
|
349
|
-
use(middleware, mapInput) {
|
350
|
-
if (!mapInput) {
|
351
|
-
return new ProcedureImplementer({
|
352
|
-
contract: this["~orpc"].contract,
|
353
|
-
middlewares: this["~orpc"].middlewares
|
354
|
-
}).use(middleware);
|
355
|
-
}
|
356
|
-
return new ProcedureImplementer({
|
357
|
-
contract: this["~orpc"].contract,
|
358
|
-
middlewares: this["~orpc"].middlewares
|
359
|
-
}).use(middleware, mapInput);
|
360
|
-
}
|
361
791
|
handler(handler) {
|
362
|
-
return
|
363
|
-
|
364
|
-
contract:
|
792
|
+
return new DecoratedProcedure({
|
793
|
+
...this["~orpc"],
|
794
|
+
contract: new ContractProcedure3({
|
795
|
+
route: this["~orpc"].config.initialRoute,
|
796
|
+
InputSchema: void 0,
|
797
|
+
OutputSchema: void 0,
|
798
|
+
errorMap: {}
|
799
|
+
}),
|
365
800
|
handler
|
366
|
-
})
|
801
|
+
});
|
802
|
+
}
|
803
|
+
prefix(prefix) {
|
804
|
+
return new RouterBuilder({
|
805
|
+
middlewares: this["~orpc"].middlewares,
|
806
|
+
errorMap: {},
|
807
|
+
prefix
|
808
|
+
});
|
809
|
+
}
|
810
|
+
tag(...tags) {
|
811
|
+
return new RouterBuilder({
|
812
|
+
middlewares: this["~orpc"].middlewares,
|
813
|
+
errorMap: {},
|
814
|
+
tags
|
815
|
+
});
|
816
|
+
}
|
817
|
+
router(router) {
|
818
|
+
return new RouterBuilder({
|
819
|
+
errorMap: {},
|
820
|
+
...this["~orpc"]
|
821
|
+
}).router(router);
|
822
|
+
}
|
823
|
+
lazy(loader) {
|
824
|
+
return new RouterBuilder({
|
825
|
+
errorMap: {},
|
826
|
+
...this["~orpc"]
|
827
|
+
}).lazy(loader);
|
828
|
+
}
|
829
|
+
contract(contract) {
|
830
|
+
return createChainableImplementer(contract, this["~orpc"]);
|
367
831
|
}
|
368
832
|
};
|
369
833
|
|
@@ -374,111 +838,171 @@ var Builder = class _Builder {
|
|
374
838
|
constructor(def) {
|
375
839
|
this["~orpc"] = def;
|
376
840
|
}
|
377
|
-
|
378
|
-
return new _Builder({});
|
379
|
-
}
|
380
|
-
use(middleware) {
|
841
|
+
config(config) {
|
381
842
|
return new _Builder({
|
382
843
|
...this["~orpc"],
|
383
|
-
|
844
|
+
config: {
|
845
|
+
...this["~orpc"].config,
|
846
|
+
...config
|
847
|
+
}
|
384
848
|
});
|
385
849
|
}
|
850
|
+
context() {
|
851
|
+
return this;
|
852
|
+
}
|
386
853
|
middleware(middleware) {
|
387
854
|
return decorateMiddleware(middleware);
|
388
855
|
}
|
856
|
+
errors(errors) {
|
857
|
+
return new BuilderWithErrors({
|
858
|
+
...this["~orpc"],
|
859
|
+
errorMap: errors
|
860
|
+
});
|
861
|
+
}
|
862
|
+
use(middleware) {
|
863
|
+
const builder = new BuilderWithMiddlewares({
|
864
|
+
...this["~orpc"],
|
865
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + 1,
|
866
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + 1,
|
867
|
+
middlewares: [middleware]
|
868
|
+
// FIXME: I believe we can remove `as any` here
|
869
|
+
});
|
870
|
+
return builder;
|
871
|
+
}
|
389
872
|
route(route) {
|
390
873
|
return new ProcedureBuilder({
|
391
|
-
middlewares:
|
392
|
-
|
393
|
-
|
874
|
+
middlewares: [],
|
875
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
876
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
877
|
+
contract: new ContractProcedure4({
|
878
|
+
route: {
|
879
|
+
...this["~orpc"].config.initialRoute,
|
880
|
+
...route
|
881
|
+
},
|
394
882
|
InputSchema: void 0,
|
395
|
-
OutputSchema: void 0
|
883
|
+
OutputSchema: void 0,
|
884
|
+
errorMap: {}
|
396
885
|
})
|
397
886
|
});
|
398
887
|
}
|
399
888
|
input(schema, example) {
|
400
|
-
return new
|
401
|
-
middlewares:
|
402
|
-
|
889
|
+
return new ProcedureBuilderWithInput({
|
890
|
+
middlewares: [],
|
891
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
892
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
893
|
+
contract: new ContractProcedure4({
|
894
|
+
route: this["~orpc"].config.initialRoute,
|
403
895
|
OutputSchema: void 0,
|
404
896
|
InputSchema: schema,
|
405
|
-
inputExample: example
|
897
|
+
inputExample: example,
|
898
|
+
errorMap: {}
|
406
899
|
})
|
407
900
|
});
|
408
901
|
}
|
409
902
|
output(schema, example) {
|
410
|
-
return new
|
411
|
-
middlewares:
|
412
|
-
|
903
|
+
return new ProcedureBuilderWithOutput({
|
904
|
+
middlewares: [],
|
905
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
906
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
907
|
+
contract: new ContractProcedure4({
|
908
|
+
route: this["~orpc"].config.initialRoute,
|
413
909
|
InputSchema: void 0,
|
414
910
|
OutputSchema: schema,
|
415
|
-
outputExample: example
|
911
|
+
outputExample: example,
|
912
|
+
errorMap: {}
|
416
913
|
})
|
417
914
|
});
|
418
915
|
}
|
419
916
|
handler(handler) {
|
420
|
-
return
|
421
|
-
middlewares:
|
422
|
-
|
917
|
+
return new DecoratedProcedure({
|
918
|
+
middlewares: [],
|
919
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
920
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
921
|
+
contract: new ContractProcedure4({
|
922
|
+
route: this["~orpc"].config.initialRoute,
|
423
923
|
InputSchema: void 0,
|
424
|
-
OutputSchema: void 0
|
924
|
+
OutputSchema: void 0,
|
925
|
+
errorMap: {}
|
425
926
|
}),
|
426
927
|
handler
|
427
|
-
})
|
928
|
+
});
|
428
929
|
}
|
429
930
|
prefix(prefix) {
|
430
931
|
return new RouterBuilder({
|
431
|
-
middlewares:
|
932
|
+
middlewares: [],
|
933
|
+
errorMap: {},
|
432
934
|
prefix
|
433
935
|
});
|
434
936
|
}
|
435
937
|
tag(...tags) {
|
436
938
|
return new RouterBuilder({
|
437
|
-
middlewares:
|
939
|
+
middlewares: [],
|
940
|
+
errorMap: {},
|
438
941
|
tags
|
439
942
|
});
|
440
943
|
}
|
441
944
|
router(router) {
|
442
|
-
return new RouterBuilder(
|
945
|
+
return new RouterBuilder({
|
946
|
+
middlewares: [],
|
947
|
+
errorMap: []
|
948
|
+
}).router(router);
|
443
949
|
}
|
444
950
|
lazy(loader) {
|
445
|
-
return new RouterBuilder(
|
951
|
+
return new RouterBuilder({
|
952
|
+
middlewares: [],
|
953
|
+
errorMap: {}
|
954
|
+
}).lazy(loader);
|
446
955
|
}
|
447
956
|
contract(contract) {
|
448
|
-
return createChainableImplementer(contract,
|
957
|
+
return createChainableImplementer(contract, {
|
958
|
+
middlewares: [],
|
959
|
+
inputValidationIndex: 0,
|
960
|
+
outputValidationIndex: 0
|
961
|
+
});
|
449
962
|
}
|
450
963
|
};
|
451
964
|
|
965
|
+
// src/procedure-utils.ts
|
966
|
+
function call(procedure, input, ...rest) {
|
967
|
+
return createProcedureClient(procedure, ...rest)(input);
|
968
|
+
}
|
969
|
+
|
970
|
+
// src/lazy-utils.ts
|
971
|
+
function createLazyProcedureFormAnyLazy(lazied) {
|
972
|
+
const lazyProcedure = lazy(async () => {
|
973
|
+
const { default: maybeProcedure } = await unlazy(flatLazy(lazied));
|
974
|
+
if (!isProcedure(maybeProcedure)) {
|
975
|
+
throw new Error(`
|
976
|
+
Expected a lazy<procedure> but got lazy<unknown>.
|
977
|
+
This should be caught by TypeScript compilation.
|
978
|
+
Please report this issue if this makes you feel uncomfortable.
|
979
|
+
`);
|
980
|
+
}
|
981
|
+
return { default: maybeProcedure };
|
982
|
+
});
|
983
|
+
return lazyProcedure;
|
984
|
+
}
|
985
|
+
|
452
986
|
// src/router-client.ts
|
453
|
-
function createRouterClient(
|
454
|
-
if (isProcedure(
|
455
|
-
const caller = createProcedureClient(
|
456
|
-
...options,
|
457
|
-
procedure: options.router,
|
458
|
-
context: options.context,
|
459
|
-
path: options.path
|
460
|
-
});
|
987
|
+
function createRouterClient(router, ...rest) {
|
988
|
+
if (isProcedure(router)) {
|
989
|
+
const caller = createProcedureClient(router, ...rest);
|
461
990
|
return caller;
|
462
991
|
}
|
463
|
-
const procedureCaller = isLazy(
|
464
|
-
...options,
|
465
|
-
procedure: createLazyProcedureFormAnyLazy(options.router),
|
466
|
-
context: options.context,
|
467
|
-
path: options.path
|
468
|
-
}) : {};
|
992
|
+
const procedureCaller = isLazy(router) ? createProcedureClient(createLazyProcedureFormAnyLazy(router), ...rest) : {};
|
469
993
|
const recursive = new Proxy(procedureCaller, {
|
470
994
|
get(target, key) {
|
471
995
|
if (typeof key !== "string") {
|
472
996
|
return Reflect.get(target, key);
|
473
997
|
}
|
474
|
-
const next = getRouterChild(
|
998
|
+
const next = getRouterChild(router, key);
|
475
999
|
if (!next) {
|
476
1000
|
return Reflect.get(target, key);
|
477
1001
|
}
|
478
|
-
|
1002
|
+
const [options] = rest;
|
1003
|
+
return createRouterClient(next, {
|
479
1004
|
...options,
|
480
|
-
|
481
|
-
path: [...options.path ?? [], key]
|
1005
|
+
path: [...options?.path ?? [], key]
|
482
1006
|
});
|
483
1007
|
}
|
484
1008
|
});
|
@@ -486,36 +1010,42 @@ function createRouterClient(options) {
|
|
486
1010
|
}
|
487
1011
|
|
488
1012
|
// src/index.ts
|
489
|
-
import {
|
490
|
-
|
491
|
-
|
1013
|
+
import { isDefinedError, ORPCError, safe, type } from "@orpc/contract";
|
1014
|
+
var os = new Builder({
|
1015
|
+
config: {}
|
1016
|
+
});
|
492
1017
|
export {
|
493
1018
|
Builder,
|
1019
|
+
DecoratedProcedure,
|
494
1020
|
LAZY_LOADER_SYMBOL,
|
1021
|
+
ORPCError,
|
495
1022
|
Procedure,
|
496
1023
|
ProcedureBuilder,
|
497
1024
|
ProcedureImplementer,
|
498
1025
|
RouterBuilder,
|
499
1026
|
RouterImplementer,
|
500
|
-
|
1027
|
+
call,
|
501
1028
|
createChainableImplementer,
|
1029
|
+
createORPCErrorConstructorMap,
|
502
1030
|
createProcedureClient,
|
503
1031
|
createRouterClient,
|
504
1032
|
decorateLazy,
|
505
1033
|
decorateMiddleware,
|
506
|
-
decorateProcedure,
|
507
1034
|
deepSetLazyRouterPrefix,
|
508
|
-
|
1035
|
+
fallbackConfig,
|
509
1036
|
flatLazy,
|
510
1037
|
getLazyRouterPrefix,
|
511
1038
|
getRouterChild,
|
512
1039
|
getRouterContract,
|
1040
|
+
isDefinedError,
|
513
1041
|
isLazy,
|
514
1042
|
isProcedure,
|
515
1043
|
lazy,
|
516
|
-
|
1044
|
+
middlewareOutputFn,
|
517
1045
|
os,
|
1046
|
+
safe,
|
518
1047
|
setRouterContract,
|
1048
|
+
type,
|
519
1049
|
unlazy
|
520
1050
|
};
|
521
1051
|
//# sourceMappingURL=index.js.map
|