@orpc/server 0.0.0-next.8f9385e → 0.0.0-next.904b0c2
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/README.md +130 -0
- package/dist/adapters/fetch/index.d.mts +54 -0
- package/dist/adapters/fetch/index.d.ts +54 -0
- package/dist/adapters/fetch/index.mjs +9 -0
- package/dist/adapters/hono/index.d.mts +22 -0
- package/dist/adapters/hono/index.d.ts +22 -0
- package/dist/adapters/hono/index.mjs +32 -0
- package/dist/adapters/next/index.d.mts +29 -0
- package/dist/adapters/next/index.d.ts +29 -0
- package/dist/adapters/next/index.mjs +29 -0
- package/dist/adapters/node/index.d.mts +53 -0
- package/dist/adapters/node/index.d.ts +53 -0
- package/dist/adapters/node/index.mjs +85 -0
- package/dist/adapters/standard/index.d.mts +26 -0
- package/dist/adapters/standard/index.d.ts +26 -0
- package/dist/adapters/standard/index.mjs +6 -0
- package/dist/index.d.mts +275 -0
- package/dist/index.d.ts +275 -0
- package/dist/index.mjs +342 -0
- package/dist/plugins/index.d.mts +30 -0
- package/dist/plugins/index.d.ts +30 -0
- package/dist/plugins/index.mjs +107 -0
- package/dist/shared/server.89QkKw3a.d.mts +10 -0
- package/dist/shared/server.B1S3zwuw.d.mts +8 -0
- package/dist/shared/server.BMkFIQUb.d.mts +66 -0
- package/dist/shared/server.BT0gne12.d.ts +8 -0
- package/dist/shared/server.BVwwTHyO.mjs +9 -0
- package/dist/shared/server.CjWkNG6l.mjs +370 -0
- package/dist/shared/server.D0YVcfZk.d.mts +143 -0
- package/dist/shared/server.D0YVcfZk.d.ts +143 -0
- package/dist/shared/server.D9QduY95.mjs +161 -0
- package/dist/shared/server.Et1O6Bm7.mjs +98 -0
- package/dist/shared/server.taqJyaMn.d.ts +10 -0
- package/dist/shared/server.ywWqDZgA.d.ts +66 -0
- package/package.json +41 -18
- package/dist/chunk-TDFYNRZV.js +0 -190
- package/dist/fetch.js +0 -106
- package/dist/index.js +0 -394
- package/dist/src/builder.d.ts +0 -49
- package/dist/src/fetch/handle.d.ts +0 -7
- package/dist/src/fetch/handler.d.ts +0 -3
- package/dist/src/fetch/index.d.ts +0 -4
- package/dist/src/fetch/types.d.ts +0 -35
- package/dist/src/index.d.ts +0 -15
- package/dist/src/middleware.d.ts +0 -26
- package/dist/src/procedure-builder.d.ts +0 -31
- package/dist/src/procedure-caller.d.ts +0 -19
- package/dist/src/procedure-implementer.d.ts +0 -18
- package/dist/src/procedure.d.ts +0 -29
- package/dist/src/router-builder.d.ts +0 -22
- package/dist/src/router-caller.d.ts +0 -22
- package/dist/src/router-implementer.d.ts +0 -20
- package/dist/src/router.d.ts +0 -20
- package/dist/src/types.d.ts +0 -8
- package/dist/src/utils.d.ts +0 -3
package/dist/index.js
DELETED
@@ -1,394 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
Procedure,
|
3
|
-
createProcedureCaller,
|
4
|
-
decorateMiddleware,
|
5
|
-
decorateProcedure,
|
6
|
-
isProcedure,
|
7
|
-
mergeContext
|
8
|
-
} from "./chunk-TDFYNRZV.js";
|
9
|
-
|
10
|
-
// src/builder.ts
|
11
|
-
import {
|
12
|
-
ContractProcedure,
|
13
|
-
isContractProcedure as isContractProcedure2
|
14
|
-
} from "@orpc/contract";
|
15
|
-
|
16
|
-
// src/procedure-builder.ts
|
17
|
-
import {
|
18
|
-
DecoratedContractProcedure
|
19
|
-
} from "@orpc/contract";
|
20
|
-
|
21
|
-
// src/procedure-implementer.ts
|
22
|
-
var ProcedureImplementer = class _ProcedureImplementer {
|
23
|
-
constructor(zz$pi) {
|
24
|
-
this.zz$pi = zz$pi;
|
25
|
-
}
|
26
|
-
use(middleware, mapInput) {
|
27
|
-
const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
28
|
-
return new _ProcedureImplementer({
|
29
|
-
...this.zz$pi,
|
30
|
-
middlewares: [...this.zz$pi.middlewares ?? [], middleware_]
|
31
|
-
});
|
32
|
-
}
|
33
|
-
func(func) {
|
34
|
-
return decorateProcedure({
|
35
|
-
zz$p: {
|
36
|
-
middlewares: this.zz$pi.middlewares,
|
37
|
-
contract: this.zz$pi.contract,
|
38
|
-
func
|
39
|
-
}
|
40
|
-
});
|
41
|
-
}
|
42
|
-
};
|
43
|
-
|
44
|
-
// src/procedure-builder.ts
|
45
|
-
var ProcedureBuilder = class _ProcedureBuilder {
|
46
|
-
constructor(zz$pb) {
|
47
|
-
this.zz$pb = zz$pb;
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* Self chainable
|
51
|
-
*/
|
52
|
-
route(opts) {
|
53
|
-
return new _ProcedureBuilder({
|
54
|
-
...this.zz$pb,
|
55
|
-
contract: DecoratedContractProcedure.decorate(this.zz$pb.contract).route(
|
56
|
-
opts
|
57
|
-
)
|
58
|
-
});
|
59
|
-
}
|
60
|
-
input(schema, example) {
|
61
|
-
return new _ProcedureBuilder({
|
62
|
-
...this.zz$pb,
|
63
|
-
contract: DecoratedContractProcedure.decorate(this.zz$pb.contract).input(
|
64
|
-
schema,
|
65
|
-
example
|
66
|
-
)
|
67
|
-
});
|
68
|
-
}
|
69
|
-
output(schema, example) {
|
70
|
-
return new _ProcedureBuilder({
|
71
|
-
...this.zz$pb,
|
72
|
-
contract: DecoratedContractProcedure.decorate(this.zz$pb.contract).output(
|
73
|
-
schema,
|
74
|
-
example
|
75
|
-
)
|
76
|
-
});
|
77
|
-
}
|
78
|
-
use(middleware, mapInput) {
|
79
|
-
if (!mapInput) {
|
80
|
-
return new ProcedureImplementer({
|
81
|
-
contract: this.zz$pb.contract,
|
82
|
-
middlewares: this.zz$pb.middlewares
|
83
|
-
}).use(middleware);
|
84
|
-
}
|
85
|
-
return new ProcedureImplementer({
|
86
|
-
contract: this.zz$pb.contract,
|
87
|
-
middlewares: this.zz$pb.middlewares
|
88
|
-
}).use(middleware, mapInput);
|
89
|
-
}
|
90
|
-
/**
|
91
|
-
* Convert to Procedure
|
92
|
-
*/
|
93
|
-
func(func) {
|
94
|
-
return decorateProcedure({
|
95
|
-
zz$p: {
|
96
|
-
middlewares: this.zz$pb.middlewares,
|
97
|
-
contract: this.zz$pb.contract,
|
98
|
-
func
|
99
|
-
}
|
100
|
-
});
|
101
|
-
}
|
102
|
-
};
|
103
|
-
|
104
|
-
// src/router-builder.ts
|
105
|
-
import { DecoratedContractProcedure as DecoratedContractProcedure2 } from "@orpc/contract";
|
106
|
-
var RouterBuilder = class _RouterBuilder {
|
107
|
-
constructor(zz$rb) {
|
108
|
-
this.zz$rb = zz$rb;
|
109
|
-
}
|
110
|
-
prefix(prefix) {
|
111
|
-
return new _RouterBuilder({
|
112
|
-
...this.zz$rb,
|
113
|
-
prefix: `${this.zz$rb.prefix ?? ""}${prefix}`
|
114
|
-
});
|
115
|
-
}
|
116
|
-
tags(...tags) {
|
117
|
-
if (!tags.length)
|
118
|
-
return this;
|
119
|
-
return new _RouterBuilder({
|
120
|
-
...this.zz$rb,
|
121
|
-
tags: [...this.zz$rb.tags ?? [], ...tags]
|
122
|
-
});
|
123
|
-
}
|
124
|
-
use(middleware, mapInput) {
|
125
|
-
const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
126
|
-
return new _RouterBuilder({
|
127
|
-
...this.zz$rb,
|
128
|
-
middlewares: [...this.zz$rb.middlewares || [], middleware_]
|
129
|
-
});
|
130
|
-
}
|
131
|
-
router(router) {
|
132
|
-
const handled = {};
|
133
|
-
for (const key in router) {
|
134
|
-
const item = router[key];
|
135
|
-
if (isProcedure(item)) {
|
136
|
-
const builderMiddlewares = this.zz$rb.middlewares ?? [];
|
137
|
-
const itemMiddlewares = item.zz$p.middlewares ?? [];
|
138
|
-
const middlewares = [
|
139
|
-
...builderMiddlewares,
|
140
|
-
...itemMiddlewares.filter(
|
141
|
-
(item2) => !builderMiddlewares.includes(item2)
|
142
|
-
)
|
143
|
-
];
|
144
|
-
const contract = DecoratedContractProcedure2.decorate(
|
145
|
-
item.zz$p.contract
|
146
|
-
).addTags(...this.zz$rb.tags ?? []);
|
147
|
-
handled[key] = decorateProcedure({
|
148
|
-
zz$p: {
|
149
|
-
...item.zz$p,
|
150
|
-
contract: this.zz$rb.prefix ? contract.prefix(this.zz$rb.prefix) : contract,
|
151
|
-
middlewares
|
152
|
-
}
|
153
|
-
});
|
154
|
-
} else {
|
155
|
-
handled[key] = this.router(item);
|
156
|
-
}
|
157
|
-
}
|
158
|
-
return handled;
|
159
|
-
}
|
160
|
-
};
|
161
|
-
|
162
|
-
// src/router-implementer.ts
|
163
|
-
import {
|
164
|
-
isContractProcedure
|
165
|
-
} from "@orpc/contract";
|
166
|
-
var RouterImplementer = class {
|
167
|
-
constructor(zz$ri) {
|
168
|
-
this.zz$ri = zz$ri;
|
169
|
-
}
|
170
|
-
router(router) {
|
171
|
-
assertRouterImplementation(this.zz$ri.contract, router);
|
172
|
-
return router;
|
173
|
-
}
|
174
|
-
};
|
175
|
-
function chainRouterImplementer(contract, middlewares) {
|
176
|
-
const result = {};
|
177
|
-
for (const key in contract) {
|
178
|
-
const item = contract[key];
|
179
|
-
if (isContractProcedure(item)) {
|
180
|
-
result[key] = new ProcedureImplementer({
|
181
|
-
contract: item,
|
182
|
-
middlewares
|
183
|
-
});
|
184
|
-
} else {
|
185
|
-
result[key] = chainRouterImplementer(item, middlewares);
|
186
|
-
}
|
187
|
-
}
|
188
|
-
const implementer = new RouterImplementer({ contract });
|
189
|
-
return Object.assign(implementer, result);
|
190
|
-
}
|
191
|
-
function assertRouterImplementation(contract, router, path = []) {
|
192
|
-
for (const key in contract) {
|
193
|
-
const currentPath = [...path, key];
|
194
|
-
const contractItem = contract[key];
|
195
|
-
const routerItem = router[key];
|
196
|
-
if (!routerItem) {
|
197
|
-
throw new Error(
|
198
|
-
`Missing implementation for procedure at [${currentPath.join(".")}]`
|
199
|
-
);
|
200
|
-
}
|
201
|
-
if (isContractProcedure(contractItem)) {
|
202
|
-
if (isProcedure(routerItem)) {
|
203
|
-
if (routerItem.zz$p.contract !== contractItem) {
|
204
|
-
throw new Error(
|
205
|
-
`Mismatch implementation for procedure at [${currentPath.join(".")}]`
|
206
|
-
);
|
207
|
-
}
|
208
|
-
} else {
|
209
|
-
throw new Error(
|
210
|
-
`Mismatch implementation for procedure at [${currentPath.join(".")}]`
|
211
|
-
);
|
212
|
-
}
|
213
|
-
} else {
|
214
|
-
assertRouterImplementation(
|
215
|
-
contractItem,
|
216
|
-
routerItem,
|
217
|
-
currentPath
|
218
|
-
);
|
219
|
-
}
|
220
|
-
}
|
221
|
-
}
|
222
|
-
|
223
|
-
// src/builder.ts
|
224
|
-
var Builder = class _Builder {
|
225
|
-
constructor(zz$b = {}) {
|
226
|
-
this.zz$b = zz$b;
|
227
|
-
}
|
228
|
-
/**
|
229
|
-
* Self chainable
|
230
|
-
*/
|
231
|
-
context() {
|
232
|
-
return this;
|
233
|
-
}
|
234
|
-
use(middleware, mapInput) {
|
235
|
-
const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
236
|
-
return new _Builder({
|
237
|
-
...this.zz$b,
|
238
|
-
middlewares: [...this.zz$b.middlewares || [], middleware_]
|
239
|
-
});
|
240
|
-
}
|
241
|
-
/**
|
242
|
-
* Convert to ContractProcedureBuilder
|
243
|
-
*/
|
244
|
-
route(opts) {
|
245
|
-
return new ProcedureBuilder({
|
246
|
-
middlewares: this.zz$b.middlewares,
|
247
|
-
contract: new ContractProcedure({
|
248
|
-
...opts,
|
249
|
-
InputSchema: void 0,
|
250
|
-
OutputSchema: void 0
|
251
|
-
})
|
252
|
-
});
|
253
|
-
}
|
254
|
-
input(schema, example) {
|
255
|
-
return new ProcedureBuilder({
|
256
|
-
middlewares: this.zz$b.middlewares,
|
257
|
-
contract: new ContractProcedure({
|
258
|
-
OutputSchema: void 0,
|
259
|
-
InputSchema: schema,
|
260
|
-
inputExample: example
|
261
|
-
})
|
262
|
-
});
|
263
|
-
}
|
264
|
-
output(schema, example) {
|
265
|
-
return new ProcedureBuilder({
|
266
|
-
middlewares: this.zz$b.middlewares,
|
267
|
-
contract: new ContractProcedure({
|
268
|
-
InputSchema: void 0,
|
269
|
-
OutputSchema: schema,
|
270
|
-
outputExample: example
|
271
|
-
})
|
272
|
-
});
|
273
|
-
}
|
274
|
-
/**
|
275
|
-
* Convert to Procedure
|
276
|
-
*/
|
277
|
-
func(func) {
|
278
|
-
return decorateProcedure({
|
279
|
-
zz$p: {
|
280
|
-
middlewares: this.zz$b.middlewares,
|
281
|
-
contract: new ContractProcedure({
|
282
|
-
InputSchema: void 0,
|
283
|
-
OutputSchema: void 0
|
284
|
-
}),
|
285
|
-
func
|
286
|
-
}
|
287
|
-
});
|
288
|
-
}
|
289
|
-
/**
|
290
|
-
* Convert to ProcedureImplementer | RouterBuilder
|
291
|
-
*/
|
292
|
-
contract(contract) {
|
293
|
-
if (isContractProcedure2(contract)) {
|
294
|
-
return new ProcedureImplementer({
|
295
|
-
contract,
|
296
|
-
middlewares: this.zz$b.middlewares
|
297
|
-
});
|
298
|
-
}
|
299
|
-
return chainRouterImplementer(
|
300
|
-
contract,
|
301
|
-
this.zz$b.middlewares
|
302
|
-
);
|
303
|
-
}
|
304
|
-
/**
|
305
|
-
* Create ExtendedMiddleware
|
306
|
-
*/
|
307
|
-
// TODO: TOutput always any, infer not work at all, because TOutput used inside middleware params,
|
308
|
-
// solution (maybe): create new generic for .output() method
|
309
|
-
middleware(middleware) {
|
310
|
-
return decorateMiddleware(middleware);
|
311
|
-
}
|
312
|
-
prefix(prefix) {
|
313
|
-
return new RouterBuilder({
|
314
|
-
...this.zz$b,
|
315
|
-
prefix
|
316
|
-
});
|
317
|
-
}
|
318
|
-
tags(...tags) {
|
319
|
-
return new RouterBuilder({
|
320
|
-
...this.zz$b,
|
321
|
-
tags
|
322
|
-
});
|
323
|
-
}
|
324
|
-
/**
|
325
|
-
* Create DecoratedRouter
|
326
|
-
*/
|
327
|
-
router(router) {
|
328
|
-
return new RouterBuilder(this.zz$b).router(router);
|
329
|
-
}
|
330
|
-
};
|
331
|
-
|
332
|
-
// src/router.ts
|
333
|
-
import {
|
334
|
-
isContractProcedure as isContractProcedure3
|
335
|
-
} from "@orpc/contract";
|
336
|
-
function toContractRouter(router) {
|
337
|
-
const contract = {};
|
338
|
-
for (const key in router) {
|
339
|
-
const item = router[key];
|
340
|
-
if (isContractProcedure3(item)) {
|
341
|
-
contract[key] = item;
|
342
|
-
} else if (isProcedure(item)) {
|
343
|
-
contract[key] = item.zz$p.contract;
|
344
|
-
} else {
|
345
|
-
contract[key] = toContractRouter(item);
|
346
|
-
}
|
347
|
-
}
|
348
|
-
return contract;
|
349
|
-
}
|
350
|
-
|
351
|
-
// src/router-caller.ts
|
352
|
-
function createRouterCaller(options) {
|
353
|
-
const caller = {};
|
354
|
-
for (const key in options.router) {
|
355
|
-
const path = [...options.basePath ?? [], key];
|
356
|
-
const item = options.router[key];
|
357
|
-
if (isProcedure(item)) {
|
358
|
-
caller[key] = createProcedureCaller({
|
359
|
-
procedure: item,
|
360
|
-
context: options.context,
|
361
|
-
path
|
362
|
-
});
|
363
|
-
} else {
|
364
|
-
caller[key] = createRouterCaller({
|
365
|
-
router: item,
|
366
|
-
context: options.context,
|
367
|
-
basePath: path
|
368
|
-
});
|
369
|
-
}
|
370
|
-
}
|
371
|
-
return caller;
|
372
|
-
}
|
373
|
-
|
374
|
-
// src/index.ts
|
375
|
-
export * from "@orpc/shared/error";
|
376
|
-
var os = new Builder();
|
377
|
-
export {
|
378
|
-
Builder,
|
379
|
-
Procedure,
|
380
|
-
ProcedureBuilder,
|
381
|
-
ProcedureImplementer,
|
382
|
-
RouterImplementer,
|
383
|
-
assertRouterImplementation,
|
384
|
-
chainRouterImplementer,
|
385
|
-
createProcedureCaller,
|
386
|
-
createRouterCaller,
|
387
|
-
decorateMiddleware,
|
388
|
-
decorateProcedure,
|
389
|
-
isProcedure,
|
390
|
-
mergeContext,
|
391
|
-
os,
|
392
|
-
toContractRouter
|
393
|
-
};
|
394
|
-
//# sourceMappingURL=index.js.map
|
package/dist/src/builder.d.ts
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
import type { IsEqual } from '@orpc/shared';
|
2
|
-
import type { HandledRouter, Router } from './router';
|
3
|
-
import type { Context, MergeContext } from './types';
|
4
|
-
import { ContractProcedure, type ContractRouter, type HTTPPath, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
|
5
|
-
import { type DecoratedMiddleware, type MapInputMiddleware, type Middleware } from './middleware';
|
6
|
-
import { type DecoratedProcedure, type ProcedureFunc } from './procedure';
|
7
|
-
import { ProcedureBuilder } from './procedure-builder';
|
8
|
-
import { ProcedureImplementer } from './procedure-implementer';
|
9
|
-
import { RouterBuilder } from './router-builder';
|
10
|
-
import { type ChainedRouterImplementer } from './router-implementer';
|
11
|
-
export declare class Builder<TContext extends Context, TExtraContext extends Context> {
|
12
|
-
zz$b: {
|
13
|
-
middlewares?: Middleware<any, any, any, any>[];
|
14
|
-
};
|
15
|
-
constructor(zz$b?: {
|
16
|
-
middlewares?: Middleware<any, any, any, any>[];
|
17
|
-
});
|
18
|
-
/**
|
19
|
-
* Self chainable
|
20
|
-
*/
|
21
|
-
context<UContext extends Context>(): IsEqual<UContext, Context> extends true ? Builder<TContext, TExtraContext> : Builder<UContext, TExtraContext>;
|
22
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, unknown, unknown>): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>;
|
23
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, unknown>, mapInput: MapInputMiddleware<unknown, UMappedInput>): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>;
|
24
|
-
/**
|
25
|
-
* Convert to ContractProcedureBuilder
|
26
|
-
*/
|
27
|
-
route(opts: RouteOptions): ProcedureBuilder<TContext, TExtraContext, undefined, undefined>;
|
28
|
-
input<USchema extends Schema = undefined>(schema: USchema, example?: SchemaInput<USchema>): ProcedureBuilder<TContext, TExtraContext, USchema, undefined>;
|
29
|
-
output<USchema extends Schema = undefined>(schema: USchema, example?: SchemaOutput<USchema>): ProcedureBuilder<TContext, TExtraContext, undefined, USchema>;
|
30
|
-
/**
|
31
|
-
* Convert to Procedure
|
32
|
-
*/
|
33
|
-
func<UFuncOutput = undefined>(func: ProcedureFunc<TContext, TExtraContext, undefined, undefined, UFuncOutput>): DecoratedProcedure<TContext, TExtraContext, undefined, undefined, UFuncOutput>;
|
34
|
-
/**
|
35
|
-
* Convert to ProcedureImplementer | RouterBuilder
|
36
|
-
*/
|
37
|
-
contract<UContract extends ContractProcedure<any, any> | ContractRouter>(contract: UContract): UContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema> : UContract extends ContractRouter ? ChainedRouterImplementer<TContext, UContract, TExtraContext> : never;
|
38
|
-
/**
|
39
|
-
* Create ExtendedMiddleware
|
40
|
-
*/
|
41
|
-
middleware<UExtraContext extends Context = undefined, TInput = unknown, TOutput = any>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, TOutput>): DecoratedMiddleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, TOutput>;
|
42
|
-
prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext>;
|
43
|
-
tags(...tags: string[]): RouterBuilder<TContext, TExtraContext>;
|
44
|
-
/**
|
45
|
-
* Create DecoratedRouter
|
46
|
-
*/
|
47
|
-
router<URouter extends Router<TContext>>(router: URouter): HandledRouter<URouter>;
|
48
|
-
}
|
49
|
-
//# sourceMappingURL=builder.d.ts.map
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import type { Router } from '../router';
|
2
|
-
import type { FetchHandler, FetchHandlerOptions } from './types';
|
3
|
-
export type HandleFetchRequestOptions<TRouter extends Router<any>> = FetchHandlerOptions<TRouter> & {
|
4
|
-
handlers: readonly [FetchHandler, ...FetchHandler[]];
|
5
|
-
};
|
6
|
-
export declare function handleFetchRequest<TRouter extends Router<any>>(options: HandleFetchRequestOptions<TRouter>): Promise<Response>;
|
7
|
-
//# sourceMappingURL=handle.d.ts.map
|
@@ -1,35 +0,0 @@
|
|
1
|
-
import type { PartialOnUndefinedDeep, Promisable, Value } from '@orpc/shared';
|
2
|
-
import type { Router } from '../router';
|
3
|
-
export interface FetchHandlerHooks {
|
4
|
-
next: () => Promise<Response>;
|
5
|
-
response: (response: Response) => Response;
|
6
|
-
}
|
7
|
-
export type FetchHandlerOptions<TRouter extends Router<any>> = {
|
8
|
-
/**
|
9
|
-
* The `router` used for handling the request and routing,
|
10
|
-
*
|
11
|
-
*/
|
12
|
-
router: TRouter;
|
13
|
-
/**
|
14
|
-
* The request need to be handled.
|
15
|
-
*/
|
16
|
-
request: Request;
|
17
|
-
/**
|
18
|
-
* Remove the prefix from the request path.
|
19
|
-
*
|
20
|
-
* @example /orpc
|
21
|
-
* @example /api
|
22
|
-
*/
|
23
|
-
prefix?: string;
|
24
|
-
/**
|
25
|
-
* Hooks for executing logics on lifecycle events.
|
26
|
-
*/
|
27
|
-
hooks?: (context: TRouter extends Router<infer UContext> ? UContext : never, hooks: FetchHandlerHooks) => Promisable<Response>;
|
28
|
-
} & PartialOnUndefinedDeep<{
|
29
|
-
/**
|
30
|
-
* The context used to handle the request.
|
31
|
-
*/
|
32
|
-
context: Value<TRouter extends Router<infer UContext> ? UContext : never>;
|
33
|
-
}>;
|
34
|
-
export type FetchHandler = <TRouter extends Router<any>>(options: FetchHandlerOptions<TRouter>) => Promise<Response | undefined>;
|
35
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/index.d.ts
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
import { Builder } from './builder';
|
2
|
-
export * from './builder';
|
3
|
-
export * from './middleware';
|
4
|
-
export * from './procedure';
|
5
|
-
export * from './procedure-builder';
|
6
|
-
export * from './procedure-caller';
|
7
|
-
export * from './procedure-implementer';
|
8
|
-
export * from './router';
|
9
|
-
export * from './router-caller';
|
10
|
-
export * from './router-implementer';
|
11
|
-
export * from './types';
|
12
|
-
export * from './utils';
|
13
|
-
export * from '@orpc/shared/error';
|
14
|
-
export declare const os: Builder<Record<string, unknown> | undefined, undefined>;
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/middleware.d.ts
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
import type { Promisable } from '@orpc/shared';
|
2
|
-
import type { Context, MergeContext, Meta } from './types';
|
3
|
-
export type MiddlewareResult<TExtraContext extends Context, TOutput> = Promisable<{
|
4
|
-
output: TOutput;
|
5
|
-
context: TExtraContext;
|
6
|
-
}>;
|
7
|
-
export interface MiddlewareMeta<TOutput> extends Meta {
|
8
|
-
next: <UExtraContext extends Context = undefined>(options: UExtraContext extends undefined ? {
|
9
|
-
context?: UExtraContext;
|
10
|
-
} : {
|
11
|
-
context: UExtraContext;
|
12
|
-
}) => MiddlewareResult<UExtraContext, TOutput>;
|
13
|
-
output: <UOutput>(output: UOutput) => MiddlewareResult<undefined, UOutput>;
|
14
|
-
}
|
15
|
-
export interface Middleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput> {
|
16
|
-
(input: TInput, context: TContext, meta: MiddlewareMeta<TOutput>): Promisable<MiddlewareResult<TExtraContext, TOutput>>;
|
17
|
-
}
|
18
|
-
export interface MapInputMiddleware<TInput, TMappedInput> {
|
19
|
-
(input: TInput): TMappedInput;
|
20
|
-
}
|
21
|
-
export interface DecoratedMiddleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput> extends Middleware<TContext, TExtraContext, TInput, TOutput> {
|
22
|
-
concat: (<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UInput = TInput>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UInput & TInput, TOutput>) => DecoratedMiddleware<TContext, MergeContext<TExtraContext, UExtraContext>, TInput & UInput, TOutput>) & (<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UInput = TInput, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, TOutput>, mapInput: MapInputMiddleware<UInput, UMappedInput>) => DecoratedMiddleware<TContext, MergeContext<TExtraContext, UExtraContext>, TInput & UInput, TOutput>);
|
23
|
-
mapInput: <UInput = unknown>(map: MapInputMiddleware<UInput, TInput>) => DecoratedMiddleware<TContext, TExtraContext, UInput, TOutput>;
|
24
|
-
}
|
25
|
-
export declare function decorateMiddleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput>(middleware: Middleware<TContext, TExtraContext, TInput, TOutput>): DecoratedMiddleware<TContext, TExtraContext, TInput, TOutput>;
|
26
|
-
//# sourceMappingURL=middleware.d.ts.map
|
@@ -1,31 +0,0 @@
|
|
1
|
-
import type { MapInputMiddleware, Middleware } from './middleware';
|
2
|
-
import type { Context, MergeContext } from './types';
|
3
|
-
import { type ContractProcedure, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
|
4
|
-
import { type DecoratedProcedure, type ProcedureFunc } from './procedure';
|
5
|
-
import { ProcedureImplementer } from './procedure-implementer';
|
6
|
-
export declare class ProcedureBuilder<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema> {
|
7
|
-
zz$pb: {
|
8
|
-
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
9
|
-
middlewares?: Middleware<any, any, any, any>[];
|
10
|
-
};
|
11
|
-
constructor(zz$pb: {
|
12
|
-
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
13
|
-
middlewares?: Middleware<any, any, any, any>[];
|
14
|
-
});
|
15
|
-
/**
|
16
|
-
* Self chainable
|
17
|
-
*/
|
18
|
-
route(opts: RouteOptions): ProcedureBuilder<TContext, TExtraContext, TInputSchema, TOutputSchema>;
|
19
|
-
input<USchema extends Schema = undefined>(schema: USchema, example?: SchemaInput<USchema>): ProcedureBuilder<TContext, TExtraContext, USchema, TOutputSchema>;
|
20
|
-
output<USchema extends Schema = undefined>(schema: USchema, example?: SchemaOutput<USchema>): ProcedureBuilder<TContext, TExtraContext, TInputSchema, USchema>;
|
21
|
-
/**
|
22
|
-
* Convert to ProcedureBuilder
|
23
|
-
*/
|
24
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaInput<TOutputSchema>>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
25
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaInput<TOutputSchema>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
26
|
-
/**
|
27
|
-
* Convert to Procedure
|
28
|
-
*/
|
29
|
-
func<UFuncOutput extends SchemaOutput<TOutputSchema>>(func: ProcedureFunc<TContext, TExtraContext, TInputSchema, TOutputSchema, UFuncOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, UFuncOutput>;
|
30
|
-
}
|
31
|
-
//# sourceMappingURL=procedure-builder.d.ts.map
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import type { SchemaInput, SchemaOutput } from '@orpc/contract';
|
2
|
-
import type { Procedure } from './procedure';
|
3
|
-
import { type Value } from '@orpc/shared';
|
4
|
-
export interface CreateProcedureCallerOptions<TProcedure extends Procedure<any, any, any, any, any>> {
|
5
|
-
procedure: TProcedure;
|
6
|
-
/**
|
7
|
-
* The context used when calling the procedure.
|
8
|
-
*/
|
9
|
-
context: Value<TProcedure extends Procedure<infer UContext, any, any, any, any> ? UContext : never>;
|
10
|
-
/**
|
11
|
-
* This is helpful for logging and analytics.
|
12
|
-
*
|
13
|
-
* @internal
|
14
|
-
*/
|
15
|
-
path?: string[];
|
16
|
-
}
|
17
|
-
export type ProcedureCaller<TProcedure extends Procedure<any, any, any, any, any>> = TProcedure extends Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> ? (...input: [input: SchemaInput<UInputSchema> | FormData] | (undefined extends SchemaInput<UInputSchema> ? [] : never)) => Promise<SchemaOutput<UOutputSchema, UFuncOutput>> : never;
|
18
|
-
export declare function createProcedureCaller<TProcedure extends Procedure<any, any, any, any, any>>(options: CreateProcedureCallerOptions<TProcedure>): ProcedureCaller<TProcedure>;
|
19
|
-
//# sourceMappingURL=procedure-caller.d.ts.map
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import type { ContractProcedure, Schema, SchemaInput, SchemaOutput } from '@orpc/contract';
|
2
|
-
import type { Context, MergeContext } from './types';
|
3
|
-
import { type MapInputMiddleware, type Middleware } from './middleware';
|
4
|
-
import { type DecoratedProcedure, type ProcedureFunc } from './procedure';
|
5
|
-
export declare class ProcedureImplementer<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema> {
|
6
|
-
zz$pi: {
|
7
|
-
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
8
|
-
middlewares?: Middleware<any, any, any, any>[];
|
9
|
-
};
|
10
|
-
constructor(zz$pi: {
|
11
|
-
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
12
|
-
middlewares?: Middleware<any, any, any, any>[];
|
13
|
-
});
|
14
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaInput<TOutputSchema>>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
15
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaInput<TOutputSchema>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
16
|
-
func<UFuncOutput extends SchemaOutput<TOutputSchema>>(func: ProcedureFunc<TContext, TExtraContext, TInputSchema, TOutputSchema, UFuncOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, UFuncOutput>;
|
17
|
-
}
|
18
|
-
//# sourceMappingURL=procedure-implementer.d.ts.map
|
package/dist/src/procedure.d.ts
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
import type { Promisable } from '@orpc/shared';
|
2
|
-
import type { ProcedureCaller } from './procedure-caller';
|
3
|
-
import type { Context, MergeContext, Meta } from './types';
|
4
|
-
import { type ContractProcedure, type HTTPPath, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
|
5
|
-
import { type MapInputMiddleware, type Middleware } from './middleware';
|
6
|
-
export declare class Procedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, TFuncOutput extends SchemaOutput<TOutputSchema>> {
|
7
|
-
zz$p: {
|
8
|
-
middlewares?: Middleware<any, any, any, any>[];
|
9
|
-
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
10
|
-
func: ProcedureFunc<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>;
|
11
|
-
};
|
12
|
-
constructor(zz$p: {
|
13
|
-
middlewares?: Middleware<any, any, any, any>[];
|
14
|
-
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
15
|
-
func: ProcedureFunc<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>;
|
16
|
-
});
|
17
|
-
}
|
18
|
-
export type DecoratedProcedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, TFuncOutput extends SchemaOutput<TOutputSchema>> = Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput> & {
|
19
|
-
prefix: (prefix: HTTPPath) => DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>;
|
20
|
-
route: (opts: RouteOptions) => DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>;
|
21
|
-
use: (<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaInput<TOutputSchema, TFuncOutput>>) => DecoratedProcedure<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema, TFuncOutput>) & (<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaInput<TOutputSchema, TFuncOutput>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema, TFuncOutput>, UMappedInput>) => DecoratedProcedure<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema, TFuncOutput>);
|
22
|
-
} & (undefined extends TContext ? ProcedureCaller<Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>> : unknown);
|
23
|
-
export interface ProcedureFunc<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, TOutput extends SchemaOutput<TOutputSchema>> {
|
24
|
-
(input: SchemaOutput<TInputSchema>, context: MergeContext<TContext, TExtraContext>, meta: Meta): Promisable<SchemaInput<TOutputSchema, TOutput>>;
|
25
|
-
}
|
26
|
-
export declare function decorateProcedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, TFuncOutput extends SchemaOutput<TOutputSchema>>(procedure: Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, TFuncOutput>;
|
27
|
-
export type WELL_DEFINED_PROCEDURE = Procedure<Context, Context, Schema, Schema, unknown>;
|
28
|
-
export declare function isProcedure(item: unknown): item is WELL_DEFINED_PROCEDURE;
|
29
|
-
//# sourceMappingURL=procedure.d.ts.map
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import type { HandledRouter, Router } from './router';
|
2
|
-
import type { Context, MergeContext } from './types';
|
3
|
-
import { type HTTPPath } from '@orpc/contract';
|
4
|
-
import { type MapInputMiddleware, type Middleware } from './middleware';
|
5
|
-
export declare class RouterBuilder<TContext extends Context, TExtraContext extends Context> {
|
6
|
-
zz$rb: {
|
7
|
-
prefix?: HTTPPath;
|
8
|
-
tags?: string[];
|
9
|
-
middlewares?: Middleware<any, any, any, any>[];
|
10
|
-
};
|
11
|
-
constructor(zz$rb: {
|
12
|
-
prefix?: HTTPPath;
|
13
|
-
tags?: string[];
|
14
|
-
middlewares?: Middleware<any, any, any, any>[];
|
15
|
-
});
|
16
|
-
prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext>;
|
17
|
-
tags(...tags: string[]): RouterBuilder<TContext, TExtraContext>;
|
18
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, unknown, unknown>): RouterBuilder<TContext, MergeContext<TExtraContext, UExtraContext>>;
|
19
|
-
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, unknown>, mapInput: MapInputMiddleware<unknown, UMappedInput>): RouterBuilder<TContext, MergeContext<TExtraContext, UExtraContext>>;
|
20
|
-
router<URouter extends Router<TContext>>(router: URouter): HandledRouter<URouter>;
|
21
|
-
}
|
22
|
-
//# sourceMappingURL=router-builder.d.ts.map
|