@orpc/server 0.30.0 → 0.32.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/{chunk-SA7HGGVY.js → chunk-GK2Z6B6W.js} +22 -34
- package/dist/{chunk-2HRHHZJD.js → chunk-SXUFCJBY.js} +2 -2
- package/dist/fetch.js +2 -2
- package/dist/hono.js +2 -2
- package/dist/index.js +555 -103
- package/dist/next.js +2 -2
- package/dist/node.js +2 -2
- package/dist/src/builder-with-errors-middlewares.d.ts +51 -0
- package/dist/src/builder-with-errors.d.ts +52 -0
- package/dist/src/builder-with-middlewares.d.ts +48 -0
- package/dist/src/builder.d.ts +34 -23
- package/dist/src/config.d.ts +6 -0
- package/dist/src/context.d.ts +11 -0
- package/dist/src/implementer-chainable.d.ts +5 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/middleware-decorated.d.ts +2 -1
- package/dist/src/procedure-builder-with-input.d.ts +34 -0
- package/dist/src/procedure-builder-with-output.d.ts +33 -0
- package/dist/src/procedure-builder.d.ts +18 -15
- package/dist/src/procedure-decorated.d.ts +5 -6
- package/dist/src/procedure-implementer.d.ts +6 -4
- package/dist/src/procedure.d.ts +4 -3
- package/dist/src/router-builder.d.ts +4 -2
- package/dist/src/router-implementer.d.ts +2 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
@@ -11,14 +11,22 @@ import {
|
|
11
11
|
mergeContext,
|
12
12
|
middlewareOutputFn,
|
13
13
|
unlazy
|
14
|
-
} from "./chunk-
|
14
|
+
} from "./chunk-GK2Z6B6W.js";
|
15
15
|
|
16
16
|
// src/builder.ts
|
17
|
+
import { ContractProcedure as ContractProcedure4 } from "@orpc/contract";
|
18
|
+
|
19
|
+
// src/builder-with-errors.ts
|
20
|
+
import { ContractProcedure as ContractProcedure2 } from "@orpc/contract";
|
21
|
+
|
22
|
+
// src/builder-with-errors-middlewares.ts
|
17
23
|
import { ContractProcedure } from "@orpc/contract";
|
18
24
|
|
19
|
-
// src/
|
20
|
-
import {
|
21
|
-
|
25
|
+
// src/procedure-builder.ts
|
26
|
+
import { ContractProcedureBuilder, DecoratedContractProcedure as DecoratedContractProcedure4 } from "@orpc/contract";
|
27
|
+
|
28
|
+
// src/procedure-builder-with-input.ts
|
29
|
+
import { ContractProcedureBuilderWithInput, DecoratedContractProcedure as DecoratedContractProcedure2 } from "@orpc/contract";
|
22
30
|
|
23
31
|
// src/middleware-decorated.ts
|
24
32
|
function decorateMiddleware(middleware) {
|
@@ -45,7 +53,6 @@ function decorateMiddleware(middleware) {
|
|
45
53
|
|
46
54
|
// src/procedure-decorated.ts
|
47
55
|
import { DecoratedContractProcedure } from "@orpc/contract";
|
48
|
-
import { createCallableObject } from "@orpc/shared";
|
49
56
|
var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
|
50
57
|
static decorate(procedure) {
|
51
58
|
if (procedure instanceof _DecoratedProcedure) {
|
@@ -75,7 +82,7 @@ var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
|
|
75
82
|
const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
76
83
|
return new _DecoratedProcedure({
|
77
84
|
...this["~orpc"],
|
78
|
-
|
85
|
+
middlewares: [...this["~orpc"].middlewares, middleware_]
|
79
86
|
});
|
80
87
|
}
|
81
88
|
unshiftTag(...tags) {
|
@@ -86,32 +93,36 @@ var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
|
|
86
93
|
}
|
87
94
|
unshiftMiddleware(...middlewares) {
|
88
95
|
const castedMiddlewares = middlewares;
|
89
|
-
if (this["~orpc"].
|
96
|
+
if (this["~orpc"].middlewares.length) {
|
90
97
|
let min = 0;
|
91
|
-
for (let i = 0; i < this["~orpc"].
|
92
|
-
const index = castedMiddlewares.indexOf(this["~orpc"].
|
98
|
+
for (let i = 0; i < this["~orpc"].middlewares.length; i++) {
|
99
|
+
const index = castedMiddlewares.indexOf(this["~orpc"].middlewares[i], min);
|
93
100
|
if (index === -1) {
|
94
|
-
castedMiddlewares.push(...this["~orpc"].
|
101
|
+
castedMiddlewares.push(...this["~orpc"].middlewares.slice(i));
|
95
102
|
break;
|
96
103
|
}
|
97
104
|
min = index + 1;
|
98
105
|
}
|
99
106
|
}
|
107
|
+
const numNewMiddlewares = castedMiddlewares.length - this["~orpc"].middlewares.length;
|
100
108
|
return new _DecoratedProcedure({
|
101
109
|
...this["~orpc"],
|
102
|
-
|
110
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + numNewMiddlewares,
|
111
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + numNewMiddlewares,
|
112
|
+
middlewares: castedMiddlewares
|
103
113
|
});
|
104
114
|
}
|
105
115
|
/**
|
106
116
|
* Make this procedure callable (works like a function while still being a procedure).
|
107
|
-
* **Note**: this only takes effect when this method is called at the end of the chain.
|
108
117
|
*/
|
109
118
|
callable(...rest) {
|
110
|
-
return
|
119
|
+
return Object.assign(createProcedureClient(this, ...rest), {
|
120
|
+
"~type": "Procedure",
|
121
|
+
"~orpc": this["~orpc"]
|
122
|
+
});
|
111
123
|
}
|
112
124
|
/**
|
113
125
|
* Make this procedure compatible with server action (the same as .callable, but the type is compatible with server action).
|
114
|
-
* **Note**: this only takes effect when this method is called at the end of the chain.
|
115
126
|
*/
|
116
127
|
actionable(...rest) {
|
117
128
|
return this.callable(...rest);
|
@@ -129,14 +140,141 @@ var ProcedureImplementer = class _ProcedureImplementer {
|
|
129
140
|
const mappedMiddleware = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
130
141
|
return new _ProcedureImplementer({
|
131
142
|
...this["~orpc"],
|
132
|
-
|
143
|
+
middlewares: [...this["~orpc"].middlewares, mappedMiddleware]
|
144
|
+
});
|
145
|
+
}
|
146
|
+
handler(handler) {
|
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
|
+
return new _ProcedureBuilderWithOutput({
|
217
|
+
...this["~orpc"],
|
218
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
219
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
220
|
+
});
|
221
|
+
}
|
222
|
+
input(schema, example) {
|
223
|
+
return new ProcedureImplementer({
|
224
|
+
...this["~orpc"],
|
225
|
+
contract: new ContractProcedureBuilderWithOutput(this["~orpc"].contract["~orpc"]).input(schema, example)
|
133
226
|
});
|
134
227
|
}
|
135
228
|
handler(handler) {
|
136
229
|
return new DecoratedProcedure({
|
137
|
-
|
138
|
-
|
139
|
-
|
230
|
+
...this["~orpc"],
|
231
|
+
handler
|
232
|
+
});
|
233
|
+
}
|
234
|
+
};
|
235
|
+
|
236
|
+
// src/procedure-builder.ts
|
237
|
+
var ProcedureBuilder = class _ProcedureBuilder {
|
238
|
+
"~type" = "ProcedureBuilder";
|
239
|
+
"~orpc";
|
240
|
+
constructor(def) {
|
241
|
+
this["~orpc"] = def;
|
242
|
+
}
|
243
|
+
errors(errors) {
|
244
|
+
return new _ProcedureBuilder({
|
245
|
+
...this["~orpc"],
|
246
|
+
contract: DecoratedContractProcedure4.decorate(this["~orpc"].contract).errors(errors)
|
247
|
+
});
|
248
|
+
}
|
249
|
+
route(route) {
|
250
|
+
return new _ProcedureBuilder({
|
251
|
+
...this["~orpc"],
|
252
|
+
contract: DecoratedContractProcedure4.decorate(this["~orpc"].contract).route(route)
|
253
|
+
});
|
254
|
+
}
|
255
|
+
use(middleware) {
|
256
|
+
return new _ProcedureBuilder({
|
257
|
+
...this["~orpc"],
|
258
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
259
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
260
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
261
|
+
});
|
262
|
+
}
|
263
|
+
input(schema, example) {
|
264
|
+
return new ProcedureBuilderWithInput({
|
265
|
+
...this["~orpc"],
|
266
|
+
contract: new ContractProcedureBuilder(this["~orpc"].contract["~orpc"]).input(schema, example)
|
267
|
+
});
|
268
|
+
}
|
269
|
+
output(schema, example) {
|
270
|
+
return new ProcedureBuilderWithOutput({
|
271
|
+
...this["~orpc"],
|
272
|
+
contract: new ContractProcedureBuilder(this["~orpc"].contract["~orpc"]).output(schema, example)
|
273
|
+
});
|
274
|
+
}
|
275
|
+
handler(handler) {
|
276
|
+
return new DecoratedProcedure({
|
277
|
+
...this["~orpc"],
|
140
278
|
handler
|
141
279
|
});
|
142
280
|
}
|
@@ -277,6 +415,246 @@ function adapt(item, options) {
|
|
277
415
|
return adapted;
|
278
416
|
}
|
279
417
|
|
418
|
+
// src/builder-with-errors-middlewares.ts
|
419
|
+
var BuilderWithErrorsMiddlewares = class _BuilderWithErrorsMiddlewares {
|
420
|
+
"~type" = "BuilderWithErrorsMiddlewares";
|
421
|
+
"~orpc";
|
422
|
+
constructor(def) {
|
423
|
+
this["~orpc"] = def;
|
424
|
+
}
|
425
|
+
errors(errors) {
|
426
|
+
return new _BuilderWithErrorsMiddlewares({
|
427
|
+
...this["~orpc"],
|
428
|
+
errorMap: {
|
429
|
+
...this["~orpc"].errorMap,
|
430
|
+
...errors
|
431
|
+
}
|
432
|
+
});
|
433
|
+
}
|
434
|
+
use(middleware) {
|
435
|
+
return new _BuilderWithErrorsMiddlewares({
|
436
|
+
...this["~orpc"],
|
437
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
438
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
439
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
440
|
+
// FIXME: I believe we can remove `as any` here
|
441
|
+
});
|
442
|
+
}
|
443
|
+
route(route) {
|
444
|
+
return new ProcedureBuilder({
|
445
|
+
...this["~orpc"],
|
446
|
+
contract: new ContractProcedure({
|
447
|
+
route: {
|
448
|
+
...this["~orpc"].config.initialRoute,
|
449
|
+
...route
|
450
|
+
},
|
451
|
+
InputSchema: void 0,
|
452
|
+
OutputSchema: void 0,
|
453
|
+
errorMap: this["~orpc"].errorMap
|
454
|
+
})
|
455
|
+
});
|
456
|
+
}
|
457
|
+
input(schema, example) {
|
458
|
+
return new ProcedureBuilderWithInput({
|
459
|
+
...this["~orpc"],
|
460
|
+
contract: new ContractProcedure({
|
461
|
+
route: this["~orpc"].config.initialRoute,
|
462
|
+
OutputSchema: void 0,
|
463
|
+
InputSchema: schema,
|
464
|
+
inputExample: example,
|
465
|
+
errorMap: this["~orpc"].errorMap
|
466
|
+
})
|
467
|
+
});
|
468
|
+
}
|
469
|
+
output(schema, example) {
|
470
|
+
return new ProcedureBuilderWithOutput({
|
471
|
+
...this["~orpc"],
|
472
|
+
contract: new ContractProcedure({
|
473
|
+
route: this["~orpc"].config.initialRoute,
|
474
|
+
InputSchema: void 0,
|
475
|
+
OutputSchema: schema,
|
476
|
+
outputExample: example,
|
477
|
+
errorMap: this["~orpc"].errorMap
|
478
|
+
})
|
479
|
+
});
|
480
|
+
}
|
481
|
+
handler(handler) {
|
482
|
+
return new DecoratedProcedure({
|
483
|
+
...this["~orpc"],
|
484
|
+
contract: new ContractProcedure({
|
485
|
+
route: this["~orpc"].config.initialRoute,
|
486
|
+
InputSchema: void 0,
|
487
|
+
OutputSchema: void 0,
|
488
|
+
errorMap: this["~orpc"].errorMap
|
489
|
+
}),
|
490
|
+
handler
|
491
|
+
});
|
492
|
+
}
|
493
|
+
prefix(prefix) {
|
494
|
+
return new RouterBuilder({
|
495
|
+
...this["~orpc"],
|
496
|
+
prefix
|
497
|
+
});
|
498
|
+
}
|
499
|
+
tag(...tags) {
|
500
|
+
return new RouterBuilder({
|
501
|
+
...this["~orpc"],
|
502
|
+
tags
|
503
|
+
});
|
504
|
+
}
|
505
|
+
router(router) {
|
506
|
+
return new RouterBuilder(this["~orpc"]).router(router);
|
507
|
+
}
|
508
|
+
lazy(loader) {
|
509
|
+
return new RouterBuilder(this["~orpc"]).lazy(loader);
|
510
|
+
}
|
511
|
+
};
|
512
|
+
|
513
|
+
// src/config.ts
|
514
|
+
var DEFAULT_CONFIG = {
|
515
|
+
initialInputValidationIndex: 0,
|
516
|
+
initialOutputValidationIndex: 0
|
517
|
+
};
|
518
|
+
function fallbackConfig(key, value) {
|
519
|
+
if (value === void 0) {
|
520
|
+
return DEFAULT_CONFIG[key];
|
521
|
+
}
|
522
|
+
return value;
|
523
|
+
}
|
524
|
+
|
525
|
+
// src/builder-with-errors.ts
|
526
|
+
var BuilderWithErrors = class _BuilderWithErrors {
|
527
|
+
"~type" = "BuilderWithErrors";
|
528
|
+
"~orpc";
|
529
|
+
constructor(def) {
|
530
|
+
this["~orpc"] = def;
|
531
|
+
}
|
532
|
+
config(config) {
|
533
|
+
return new _BuilderWithErrors({
|
534
|
+
...this["~orpc"],
|
535
|
+
config: {
|
536
|
+
...this["~orpc"].config,
|
537
|
+
...config
|
538
|
+
}
|
539
|
+
});
|
540
|
+
}
|
541
|
+
context() {
|
542
|
+
return this;
|
543
|
+
}
|
544
|
+
errors(errors) {
|
545
|
+
return new _BuilderWithErrors({
|
546
|
+
...this["~orpc"],
|
547
|
+
errorMap: {
|
548
|
+
...this["~orpc"].errorMap,
|
549
|
+
...errors
|
550
|
+
}
|
551
|
+
});
|
552
|
+
}
|
553
|
+
middleware(middleware) {
|
554
|
+
return decorateMiddleware(middleware);
|
555
|
+
}
|
556
|
+
use(middleware) {
|
557
|
+
return new BuilderWithErrorsMiddlewares({
|
558
|
+
...this["~orpc"],
|
559
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + 1,
|
560
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + 1,
|
561
|
+
middlewares: [middleware]
|
562
|
+
// FIXME: I believe we can remove `as any` here
|
563
|
+
});
|
564
|
+
}
|
565
|
+
route(route) {
|
566
|
+
return new ProcedureBuilder({
|
567
|
+
middlewares: [],
|
568
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
569
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
570
|
+
contract: new ContractProcedure2({
|
571
|
+
route: {
|
572
|
+
...this["~orpc"].config.initialRoute,
|
573
|
+
...route
|
574
|
+
},
|
575
|
+
InputSchema: void 0,
|
576
|
+
OutputSchema: void 0,
|
577
|
+
errorMap: this["~orpc"].errorMap
|
578
|
+
})
|
579
|
+
});
|
580
|
+
}
|
581
|
+
input(schema, example) {
|
582
|
+
return new ProcedureBuilderWithInput({
|
583
|
+
middlewares: [],
|
584
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
585
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
586
|
+
contract: new ContractProcedure2({
|
587
|
+
route: this["~orpc"].config.initialRoute,
|
588
|
+
OutputSchema: void 0,
|
589
|
+
InputSchema: schema,
|
590
|
+
inputExample: example,
|
591
|
+
errorMap: this["~orpc"].errorMap
|
592
|
+
})
|
593
|
+
});
|
594
|
+
}
|
595
|
+
output(schema, example) {
|
596
|
+
return new ProcedureBuilderWithOutput({
|
597
|
+
middlewares: [],
|
598
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
599
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
600
|
+
contract: new ContractProcedure2({
|
601
|
+
route: this["~orpc"].config.initialRoute,
|
602
|
+
InputSchema: void 0,
|
603
|
+
OutputSchema: schema,
|
604
|
+
outputExample: example,
|
605
|
+
errorMap: this["~orpc"].errorMap
|
606
|
+
})
|
607
|
+
});
|
608
|
+
}
|
609
|
+
handler(handler) {
|
610
|
+
return new DecoratedProcedure({
|
611
|
+
middlewares: [],
|
612
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
613
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
614
|
+
contract: new ContractProcedure2({
|
615
|
+
route: this["~orpc"].config.initialRoute,
|
616
|
+
InputSchema: void 0,
|
617
|
+
OutputSchema: void 0,
|
618
|
+
errorMap: this["~orpc"].errorMap
|
619
|
+
}),
|
620
|
+
handler
|
621
|
+
});
|
622
|
+
}
|
623
|
+
prefix(prefix) {
|
624
|
+
return new RouterBuilder({
|
625
|
+
middlewares: [],
|
626
|
+
errorMap: this["~orpc"].errorMap,
|
627
|
+
prefix
|
628
|
+
});
|
629
|
+
}
|
630
|
+
tag(...tags) {
|
631
|
+
return new RouterBuilder({
|
632
|
+
middlewares: [],
|
633
|
+
errorMap: this["~orpc"].errorMap,
|
634
|
+
tags
|
635
|
+
});
|
636
|
+
}
|
637
|
+
router(router) {
|
638
|
+
return new RouterBuilder({
|
639
|
+
middlewares: [],
|
640
|
+
...this["~orpc"]
|
641
|
+
}).router(router);
|
642
|
+
}
|
643
|
+
lazy(loader) {
|
644
|
+
return new RouterBuilder({
|
645
|
+
middlewares: [],
|
646
|
+
...this["~orpc"]
|
647
|
+
}).lazy(loader);
|
648
|
+
}
|
649
|
+
};
|
650
|
+
|
651
|
+
// src/builder-with-middlewares.ts
|
652
|
+
import { ContractProcedure as ContractProcedure3 } from "@orpc/contract";
|
653
|
+
|
654
|
+
// src/implementer-chainable.ts
|
655
|
+
import { isContractProcedure } from "@orpc/contract";
|
656
|
+
import { createCallableObject } from "@orpc/shared";
|
657
|
+
|
280
658
|
// src/router-implementer.ts
|
281
659
|
var RouterImplementer = class _RouterImplementer {
|
282
660
|
"~type" = "RouterImplementer";
|
@@ -309,20 +687,24 @@ var RouterImplementer = class _RouterImplementer {
|
|
309
687
|
};
|
310
688
|
|
311
689
|
// src/implementer-chainable.ts
|
312
|
-
function createChainableImplementer(contract,
|
690
|
+
function createChainableImplementer(contract, options) {
|
313
691
|
if (isContractProcedure(contract)) {
|
314
692
|
const implementer = new ProcedureImplementer({
|
315
693
|
contract,
|
316
|
-
|
317
|
-
|
694
|
+
middlewares: options.middlewares,
|
695
|
+
inputValidationIndex: options.inputValidationIndex,
|
696
|
+
outputValidationIndex: options.outputValidationIndex
|
318
697
|
});
|
319
698
|
return implementer;
|
320
699
|
}
|
321
700
|
const chainable = {};
|
322
701
|
for (const key in contract) {
|
323
|
-
chainable[key] = createChainableImplementer(contract[key],
|
702
|
+
chainable[key] = createChainableImplementer(contract[key], options);
|
324
703
|
}
|
325
|
-
const routerImplementer = new RouterImplementer({
|
704
|
+
const routerImplementer = new RouterImplementer({
|
705
|
+
contract,
|
706
|
+
middlewares: options.middlewares
|
707
|
+
});
|
326
708
|
const merged = new Proxy(chainable, {
|
327
709
|
get(target, key) {
|
328
710
|
const next = Reflect.get(target, key);
|
@@ -333,68 +715,112 @@ function createChainableImplementer(contract, middlewares = []) {
|
|
333
715
|
if (!next) {
|
334
716
|
return method.bind(routerImplementer);
|
335
717
|
}
|
336
|
-
return
|
718
|
+
return createCallableObject(next, method.bind(routerImplementer));
|
337
719
|
}
|
338
720
|
});
|
339
721
|
return merged;
|
340
722
|
}
|
341
723
|
|
342
|
-
// src/
|
343
|
-
|
344
|
-
|
345
|
-
} from "@orpc/contract";
|
346
|
-
var ProcedureBuilder = class _ProcedureBuilder {
|
347
|
-
"~type" = "ProcedureBuilder";
|
724
|
+
// src/builder-with-middlewares.ts
|
725
|
+
var BuilderWithMiddlewares = class _BuilderWithMiddlewares {
|
726
|
+
"~type" = "BuilderHasMiddlewares";
|
348
727
|
"~orpc";
|
349
728
|
constructor(def) {
|
350
729
|
this["~orpc"] = def;
|
351
730
|
}
|
352
|
-
|
353
|
-
return new
|
731
|
+
use(middleware) {
|
732
|
+
return new _BuilderWithMiddlewares({
|
354
733
|
...this["~orpc"],
|
355
|
-
|
734
|
+
inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
|
735
|
+
outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
|
736
|
+
middlewares: [...this["~orpc"].middlewares, middleware]
|
356
737
|
});
|
357
738
|
}
|
358
|
-
|
359
|
-
return new
|
739
|
+
errors(errors) {
|
740
|
+
return new BuilderWithErrorsMiddlewares({
|
360
741
|
...this["~orpc"],
|
361
|
-
|
742
|
+
errorMap: errors
|
362
743
|
});
|
363
744
|
}
|
364
|
-
|
365
|
-
return new
|
745
|
+
route(route) {
|
746
|
+
return new ProcedureBuilder({
|
366
747
|
...this["~orpc"],
|
367
|
-
contract:
|
748
|
+
contract: new ContractProcedure3({
|
749
|
+
route: {
|
750
|
+
...this["~orpc"].config.initialRoute,
|
751
|
+
...route
|
752
|
+
},
|
753
|
+
InputSchema: void 0,
|
754
|
+
OutputSchema: void 0,
|
755
|
+
errorMap: {}
|
756
|
+
})
|
368
757
|
});
|
369
758
|
}
|
370
|
-
|
371
|
-
return new
|
759
|
+
input(schema, example) {
|
760
|
+
return new ProcedureBuilderWithInput({
|
372
761
|
...this["~orpc"],
|
373
|
-
contract:
|
762
|
+
contract: new ContractProcedure3({
|
763
|
+
route: this["~orpc"].config.initialRoute,
|
764
|
+
OutputSchema: void 0,
|
765
|
+
InputSchema: schema,
|
766
|
+
inputExample: example,
|
767
|
+
errorMap: {}
|
768
|
+
})
|
374
769
|
});
|
375
770
|
}
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
postMiddlewares: []
|
388
|
-
}).use(middleware, mapInput);
|
771
|
+
output(schema, example) {
|
772
|
+
return new ProcedureBuilderWithOutput({
|
773
|
+
...this["~orpc"],
|
774
|
+
contract: new ContractProcedure3({
|
775
|
+
route: this["~orpc"].config.initialRoute,
|
776
|
+
InputSchema: void 0,
|
777
|
+
OutputSchema: schema,
|
778
|
+
outputExample: example,
|
779
|
+
errorMap: {}
|
780
|
+
})
|
781
|
+
});
|
389
782
|
}
|
390
783
|
handler(handler) {
|
391
784
|
return new DecoratedProcedure({
|
392
|
-
|
393
|
-
|
394
|
-
|
785
|
+
...this["~orpc"],
|
786
|
+
contract: new ContractProcedure3({
|
787
|
+
route: this["~orpc"].config.initialRoute,
|
788
|
+
InputSchema: void 0,
|
789
|
+
OutputSchema: void 0,
|
790
|
+
errorMap: {}
|
791
|
+
}),
|
395
792
|
handler
|
396
793
|
});
|
397
794
|
}
|
795
|
+
prefix(prefix) {
|
796
|
+
return new RouterBuilder({
|
797
|
+
middlewares: this["~orpc"].middlewares,
|
798
|
+
errorMap: {},
|
799
|
+
prefix
|
800
|
+
});
|
801
|
+
}
|
802
|
+
tag(...tags) {
|
803
|
+
return new RouterBuilder({
|
804
|
+
middlewares: this["~orpc"].middlewares,
|
805
|
+
errorMap: {},
|
806
|
+
tags
|
807
|
+
});
|
808
|
+
}
|
809
|
+
router(router) {
|
810
|
+
return new RouterBuilder({
|
811
|
+
errorMap: {},
|
812
|
+
...this["~orpc"]
|
813
|
+
}).router(router);
|
814
|
+
}
|
815
|
+
lazy(loader) {
|
816
|
+
return new RouterBuilder({
|
817
|
+
errorMap: {},
|
818
|
+
...this["~orpc"]
|
819
|
+
}).lazy(loader);
|
820
|
+
}
|
821
|
+
contract(contract) {
|
822
|
+
return createChainableImplementer(contract, this["~orpc"]);
|
823
|
+
}
|
398
824
|
};
|
399
825
|
|
400
826
|
// src/builder.ts
|
@@ -404,99 +830,126 @@ var Builder = class _Builder {
|
|
404
830
|
constructor(def) {
|
405
831
|
this["~orpc"] = def;
|
406
832
|
}
|
407
|
-
|
408
|
-
context() {
|
409
|
-
return new _Builder({
|
410
|
-
middlewares: [],
|
411
|
-
errorMap: {}
|
412
|
-
});
|
413
|
-
}
|
414
|
-
use(middleware) {
|
833
|
+
config(config) {
|
415
834
|
return new _Builder({
|
416
835
|
...this["~orpc"],
|
417
|
-
|
836
|
+
config: {
|
837
|
+
...this["~orpc"].config,
|
838
|
+
...config
|
839
|
+
}
|
418
840
|
});
|
419
841
|
}
|
842
|
+
context() {
|
843
|
+
return this;
|
844
|
+
}
|
845
|
+
middleware(middleware) {
|
846
|
+
return decorateMiddleware(middleware);
|
847
|
+
}
|
420
848
|
errors(errors) {
|
421
|
-
return new
|
849
|
+
return new BuilderWithErrors({
|
422
850
|
...this["~orpc"],
|
423
|
-
errorMap:
|
424
|
-
...this["~orpc"].errorMap,
|
425
|
-
...errors
|
426
|
-
}
|
851
|
+
errorMap: errors
|
427
852
|
});
|
428
853
|
}
|
429
|
-
|
430
|
-
|
431
|
-
|
854
|
+
use(middleware) {
|
855
|
+
return new BuilderWithMiddlewares({
|
856
|
+
...this["~orpc"],
|
857
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + 1,
|
858
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + 1,
|
859
|
+
middlewares: [middleware]
|
860
|
+
// FIXME: I believe we can remove `as any` here
|
861
|
+
});
|
432
862
|
}
|
433
863
|
route(route) {
|
434
864
|
return new ProcedureBuilder({
|
435
|
-
middlewares:
|
436
|
-
|
437
|
-
|
865
|
+
middlewares: [],
|
866
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
867
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
868
|
+
contract: new ContractProcedure4({
|
869
|
+
route: {
|
870
|
+
...this["~orpc"].config.initialRoute,
|
871
|
+
...route
|
872
|
+
},
|
438
873
|
InputSchema: void 0,
|
439
874
|
OutputSchema: void 0,
|
440
|
-
errorMap:
|
875
|
+
errorMap: {}
|
441
876
|
})
|
442
877
|
});
|
443
878
|
}
|
444
879
|
input(schema, example) {
|
445
|
-
return new
|
446
|
-
middlewares:
|
447
|
-
|
880
|
+
return new ProcedureBuilderWithInput({
|
881
|
+
middlewares: [],
|
882
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
883
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
884
|
+
contract: new ContractProcedure4({
|
885
|
+
route: this["~orpc"].config.initialRoute,
|
448
886
|
OutputSchema: void 0,
|
449
887
|
InputSchema: schema,
|
450
888
|
inputExample: example,
|
451
|
-
errorMap:
|
889
|
+
errorMap: {}
|
452
890
|
})
|
453
891
|
});
|
454
892
|
}
|
455
893
|
output(schema, example) {
|
456
|
-
return new
|
457
|
-
middlewares:
|
458
|
-
|
894
|
+
return new ProcedureBuilderWithOutput({
|
895
|
+
middlewares: [],
|
896
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
897
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
898
|
+
contract: new ContractProcedure4({
|
899
|
+
route: this["~orpc"].config.initialRoute,
|
459
900
|
InputSchema: void 0,
|
460
901
|
OutputSchema: schema,
|
461
902
|
outputExample: example,
|
462
|
-
errorMap:
|
903
|
+
errorMap: {}
|
463
904
|
})
|
464
905
|
});
|
465
906
|
}
|
466
907
|
handler(handler) {
|
467
908
|
return new DecoratedProcedure({
|
468
|
-
|
469
|
-
|
470
|
-
|
909
|
+
middlewares: [],
|
910
|
+
inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
|
911
|
+
outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
|
912
|
+
contract: new ContractProcedure4({
|
913
|
+
route: this["~orpc"].config.initialRoute,
|
471
914
|
InputSchema: void 0,
|
472
915
|
OutputSchema: void 0,
|
473
|
-
errorMap:
|
916
|
+
errorMap: {}
|
474
917
|
}),
|
475
918
|
handler
|
476
919
|
});
|
477
920
|
}
|
478
921
|
prefix(prefix) {
|
479
922
|
return new RouterBuilder({
|
480
|
-
middlewares:
|
481
|
-
errorMap:
|
923
|
+
middlewares: [],
|
924
|
+
errorMap: {},
|
482
925
|
prefix
|
483
926
|
});
|
484
927
|
}
|
485
928
|
tag(...tags) {
|
486
929
|
return new RouterBuilder({
|
487
|
-
middlewares:
|
488
|
-
errorMap:
|
930
|
+
middlewares: [],
|
931
|
+
errorMap: {},
|
489
932
|
tags
|
490
933
|
});
|
491
934
|
}
|
492
935
|
router(router) {
|
493
|
-
return new RouterBuilder(
|
936
|
+
return new RouterBuilder({
|
937
|
+
middlewares: [],
|
938
|
+
errorMap: []
|
939
|
+
}).router(router);
|
494
940
|
}
|
495
941
|
lazy(loader) {
|
496
|
-
return new RouterBuilder(
|
942
|
+
return new RouterBuilder({
|
943
|
+
middlewares: [],
|
944
|
+
errorMap: {}
|
945
|
+
}).lazy(loader);
|
497
946
|
}
|
498
947
|
contract(contract) {
|
499
|
-
return createChainableImplementer(contract,
|
948
|
+
return createChainableImplementer(contract, {
|
949
|
+
middlewares: [],
|
950
|
+
inputValidationIndex: 0,
|
951
|
+
outputValidationIndex: 0
|
952
|
+
});
|
500
953
|
}
|
501
954
|
};
|
502
955
|
|
@@ -548,10 +1001,9 @@ function createRouterClient(router, ...rest) {
|
|
548
1001
|
}
|
549
1002
|
|
550
1003
|
// src/index.ts
|
551
|
-
import {
|
1004
|
+
import { isDefinedError, ORPCError, safe, type } from "@orpc/contract";
|
552
1005
|
var os = new Builder({
|
553
|
-
|
554
|
-
errorMap: {}
|
1006
|
+
config: {}
|
555
1007
|
});
|
556
1008
|
export {
|
557
1009
|
Builder,
|
@@ -564,7 +1016,6 @@ export {
|
|
564
1016
|
RouterBuilder,
|
565
1017
|
RouterImplementer,
|
566
1018
|
call,
|
567
|
-
configGlobal,
|
568
1019
|
createChainableImplementer,
|
569
1020
|
createORPCErrorConstructorMap,
|
570
1021
|
createProcedureClient,
|
@@ -572,7 +1023,7 @@ export {
|
|
572
1023
|
decorateLazy,
|
573
1024
|
decorateMiddleware,
|
574
1025
|
deepSetLazyRouterPrefix,
|
575
|
-
|
1026
|
+
fallbackConfig,
|
576
1027
|
flatLazy,
|
577
1028
|
getLazyRouterPrefix,
|
578
1029
|
getRouterChild,
|
@@ -586,6 +1037,7 @@ export {
|
|
586
1037
|
os,
|
587
1038
|
safe,
|
588
1039
|
setRouterContract,
|
1040
|
+
type,
|
589
1041
|
unlazy
|
590
1042
|
};
|
591
1043
|
//# sourceMappingURL=index.js.map
|