@orpc/server 0.0.0-next.56e31fa → 0.0.0-next.5725903

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.
Files changed (83) hide show
  1. package/README.md +241 -0
  2. package/dist/adapters/aws-lambda/index.d.mts +46 -0
  3. package/dist/adapters/aws-lambda/index.d.ts +46 -0
  4. package/dist/adapters/aws-lambda/index.mjs +42 -0
  5. package/dist/adapters/bun-ws/index.d.mts +36 -0
  6. package/dist/adapters/bun-ws/index.d.ts +36 -0
  7. package/dist/adapters/bun-ws/index.mjs +47 -0
  8. package/dist/adapters/crossws/index.d.mts +33 -0
  9. package/dist/adapters/crossws/index.d.ts +33 -0
  10. package/dist/adapters/crossws/index.mjs +45 -0
  11. package/dist/adapters/fastify/index.d.mts +53 -0
  12. package/dist/adapters/fastify/index.d.ts +53 -0
  13. package/dist/adapters/fastify/index.mjs +54 -0
  14. package/dist/adapters/fetch/index.d.mts +124 -0
  15. package/dist/adapters/fetch/index.d.ts +124 -0
  16. package/dist/adapters/fetch/index.mjs +180 -0
  17. package/dist/adapters/message-port/index.d.mts +57 -0
  18. package/dist/adapters/message-port/index.d.ts +57 -0
  19. package/dist/adapters/message-port/index.mjs +55 -0
  20. package/dist/adapters/node/index.d.mts +99 -0
  21. package/dist/adapters/node/index.d.ts +99 -0
  22. package/dist/adapters/node/index.mjs +152 -0
  23. package/dist/adapters/standard/index.d.mts +21 -0
  24. package/dist/adapters/standard/index.d.ts +21 -0
  25. package/dist/adapters/standard/index.mjs +8 -0
  26. package/dist/adapters/standard-peer/index.d.mts +18 -0
  27. package/dist/adapters/standard-peer/index.d.ts +18 -0
  28. package/dist/adapters/standard-peer/index.mjs +7 -0
  29. package/dist/adapters/websocket/index.d.mts +56 -0
  30. package/dist/adapters/websocket/index.d.ts +56 -0
  31. package/dist/adapters/websocket/index.mjs +67 -0
  32. package/dist/adapters/ws/index.d.mts +31 -0
  33. package/dist/adapters/ws/index.d.ts +31 -0
  34. package/dist/adapters/ws/index.mjs +37 -0
  35. package/dist/helpers/index.d.mts +149 -0
  36. package/dist/helpers/index.d.ts +149 -0
  37. package/dist/helpers/index.mjs +198 -0
  38. package/dist/hibernation/index.d.mts +44 -0
  39. package/dist/hibernation/index.d.ts +44 -0
  40. package/dist/hibernation/index.mjs +65 -0
  41. package/dist/index.d.mts +803 -0
  42. package/dist/index.d.ts +803 -0
  43. package/dist/index.mjs +492 -0
  44. package/dist/plugins/index.d.mts +204 -0
  45. package/dist/plugins/index.d.ts +204 -0
  46. package/dist/plugins/index.mjs +328 -0
  47. package/dist/shared/server.7cEtMB30.d.ts +74 -0
  48. package/dist/shared/server.B8gYOD5g.d.mts +12 -0
  49. package/dist/shared/server.BqadksTP.d.mts +74 -0
  50. package/dist/shared/server.Bxx6tqNe.mjs +219 -0
  51. package/dist/shared/server.C8_sRzQB.d.mts +42 -0
  52. package/dist/shared/server.ChUyt5-i.d.mts +32 -0
  53. package/dist/shared/server.ChyoA9XY.d.ts +42 -0
  54. package/dist/shared/server.DZ5BIITo.mjs +9 -0
  55. package/dist/shared/server.Ds4HPpvH.mjs +409 -0
  56. package/dist/shared/server.EfTOZ2Q7.d.ts +12 -0
  57. package/dist/shared/server.TEVCLCFC.mjs +39 -0
  58. package/dist/shared/server.UVMTOWrk.mjs +26 -0
  59. package/dist/shared/server.qKsRrdxW.d.mts +193 -0
  60. package/dist/shared/server.qKsRrdxW.d.ts +193 -0
  61. package/dist/shared/server.yoEB3Fx4.d.ts +32 -0
  62. package/package.json +103 -20
  63. package/dist/chunk-VARUID7X.js +0 -273
  64. package/dist/fetch.js +0 -111
  65. package/dist/index.js +0 -447
  66. package/dist/src/builder.d.ts +0 -54
  67. package/dist/src/fetch/handle.d.ts +0 -7
  68. package/dist/src/fetch/handler.d.ts +0 -3
  69. package/dist/src/fetch/index.d.ts +0 -4
  70. package/dist/src/fetch/types.d.ts +0 -28
  71. package/dist/src/index.d.ts +0 -17
  72. package/dist/src/lazy.d.ts +0 -23
  73. package/dist/src/middleware.d.ts +0 -26
  74. package/dist/src/procedure-builder.d.ts +0 -31
  75. package/dist/src/procedure-caller.d.ts +0 -26
  76. package/dist/src/procedure-implementer.d.ts +0 -22
  77. package/dist/src/procedure.d.ts +0 -32
  78. package/dist/src/router-builder.d.ts +0 -27
  79. package/dist/src/router-caller.d.ts +0 -25
  80. package/dist/src/router-implementer.d.ts +0 -24
  81. package/dist/src/router.d.ts +0 -20
  82. package/dist/src/types.d.ts +0 -14
  83. package/dist/src/utils.d.ts +0 -3
package/dist/fetch.js DELETED
@@ -1,111 +0,0 @@
1
- import {
2
- createProcedureCaller,
3
- isLazy,
4
- isProcedure
5
- } from "./chunk-VARUID7X.js";
6
-
7
- // src/fetch/handle.ts
8
- import { ORPCError } from "@orpc/shared/error";
9
- async function handleFetchRequest(options) {
10
- for (const handler of options.handlers) {
11
- const response = await handler(options);
12
- if (response) {
13
- return response;
14
- }
15
- }
16
- const error = new ORPCError({ code: "NOT_FOUND", message: "Not found" });
17
- return new Response(JSON.stringify(error.toJSON()), {
18
- status: error.status,
19
- headers: {
20
- "Content-Type": "application/json"
21
- }
22
- });
23
- }
24
-
25
- // src/fetch/handler.ts
26
- import { executeWithHooks, ORPC_PROTOCOL_HEADER, ORPC_PROTOCOL_VALUE, trim, value } from "@orpc/shared";
27
- import { ORPCError as ORPCError2 } from "@orpc/shared/error";
28
- import { ORPCDeserializer, ORPCSerializer } from "@orpc/transformer";
29
- var serializer = new ORPCSerializer();
30
- var deserializer = new ORPCDeserializer();
31
- function createORPCHandler() {
32
- return async (options) => {
33
- if (!options.request.headers.get(ORPC_PROTOCOL_HEADER)?.includes(ORPC_PROTOCOL_VALUE)) {
34
- return void 0;
35
- }
36
- const context = await value(options.context);
37
- const handler = async () => {
38
- const url = new URL(options.request.url);
39
- const pathname = `/${trim(url.pathname.replace(options.prefix ?? "", ""), "/")}`;
40
- const match = resolveORPCRouter(options.router, pathname);
41
- if (!match) {
42
- throw new ORPCError2({ code: "NOT_FOUND", message: "Not found" });
43
- }
44
- const input = await deserializeRequest(options.request);
45
- const caller = createProcedureCaller({
46
- context,
47
- procedure: match.procedure,
48
- path: match.path
49
- });
50
- const output = await caller(input, { signal: options.signal });
51
- const { body, headers } = serializer.serialize(output);
52
- return new Response(body, {
53
- status: 200,
54
- headers
55
- });
56
- };
57
- try {
58
- return await executeWithHooks({
59
- hooks: options,
60
- context,
61
- execute: handler,
62
- input: options.request,
63
- meta: {
64
- signal: options.signal
65
- }
66
- });
67
- } catch (e) {
68
- const error = e instanceof ORPCError2 ? e : new ORPCError2({
69
- code: "INTERNAL_SERVER_ERROR",
70
- message: "Internal server error",
71
- cause: e
72
- });
73
- const { body, headers } = serializer.serialize(error.toJSON());
74
- return new Response(body, {
75
- status: error.status,
76
- headers
77
- });
78
- }
79
- };
80
- }
81
- function resolveORPCRouter(router, pathname) {
82
- const path = trim(pathname, "/").split("/").map(decodeURIComponent);
83
- let current = router;
84
- for (const segment of path) {
85
- if (typeof current !== "object" && typeof current !== "function" || !current) {
86
- current = void 0;
87
- break;
88
- }
89
- current = current[segment];
90
- }
91
- return isProcedure(current) || isLazy(current) ? {
92
- procedure: current,
93
- path
94
- } : void 0;
95
- }
96
- async function deserializeRequest(request) {
97
- try {
98
- return await deserializer.deserialize(request);
99
- } catch (e) {
100
- throw new ORPCError2({
101
- code: "BAD_REQUEST",
102
- message: "Cannot parse request. Please check the request body and Content-Type header.",
103
- cause: e
104
- });
105
- }
106
- }
107
- export {
108
- createORPCHandler,
109
- handleFetchRequest
110
- };
111
- //# sourceMappingURL=fetch.js.map
package/dist/index.js DELETED
@@ -1,447 +0,0 @@
1
- import {
2
- LAZY_LOADER_SYMBOL,
3
- Procedure,
4
- createFlattenLazy,
5
- createLazy,
6
- createProcedureCaller,
7
- decorateLazy,
8
- decorateMiddleware,
9
- decorateProcedure,
10
- isLazy,
11
- isProcedure,
12
- loadLazy,
13
- loadProcedure,
14
- mergeContext
15
- } from "./chunk-VARUID7X.js";
16
-
17
- // src/builder.ts
18
- import {
19
- ContractProcedure,
20
- isContractProcedure as isContractProcedure2
21
- } from "@orpc/contract";
22
-
23
- // src/procedure-builder.ts
24
- import {
25
- DecoratedContractProcedure as DecoratedContractProcedure2
26
- } from "@orpc/contract";
27
-
28
- // src/router-builder.ts
29
- import { DecoratedContractProcedure } from "@orpc/contract";
30
- var LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
31
- var RouterBuilder = class _RouterBuilder {
32
- constructor(zz$rb) {
33
- this.zz$rb = zz$rb;
34
- if (zz$rb.prefix && zz$rb.prefix.includes("{")) {
35
- throw new Error('Prefix cannot contain "{" for dynamic routing');
36
- }
37
- }
38
- prefix(prefix) {
39
- return new _RouterBuilder({
40
- ...this.zz$rb,
41
- prefix: `${this.zz$rb.prefix ?? ""}${prefix}`
42
- });
43
- }
44
- tags(...tags) {
45
- if (!tags.length)
46
- return this;
47
- return new _RouterBuilder({
48
- ...this.zz$rb,
49
- tags: [...this.zz$rb.tags ?? [], ...tags]
50
- });
51
- }
52
- use(middleware, mapInput) {
53
- const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
54
- return new _RouterBuilder({
55
- ...this.zz$rb,
56
- middlewares: [...this.zz$rb.middlewares || [], middleware_]
57
- });
58
- }
59
- router(router) {
60
- const handled = adaptRouter({
61
- routerOrChild: router,
62
- middlewares: this.zz$rb.middlewares,
63
- tags: this.zz$rb.tags,
64
- prefix: this.zz$rb.prefix
65
- });
66
- return handled;
67
- }
68
- lazy(loader) {
69
- const lazy = adaptLazyRouter({
70
- current: createLazy(loader),
71
- middlewares: this.zz$rb.middlewares,
72
- tags: this.zz$rb.tags,
73
- prefix: this.zz$rb.prefix
74
- });
75
- return lazy;
76
- }
77
- };
78
- function adaptRouter(options) {
79
- if (isProcedure(options.routerOrChild)) {
80
- return adaptProcedure({
81
- ...options,
82
- procedure: options.routerOrChild
83
- });
84
- }
85
- if (isLazy(options.routerOrChild)) {
86
- return adaptLazyRouter({
87
- ...options,
88
- current: options.routerOrChild
89
- });
90
- }
91
- const handled = {};
92
- for (const key in options.routerOrChild) {
93
- handled[key] = adaptRouter({
94
- ...options,
95
- routerOrChild: options.routerOrChild[key]
96
- });
97
- }
98
- return handled;
99
- }
100
- function adaptLazyRouter(options) {
101
- const loader = async () => {
102
- const current = (await loadLazy(options.current)).default;
103
- return {
104
- default: adaptRouter({
105
- ...options,
106
- routerOrChild: current
107
- })
108
- };
109
- };
110
- let lazyRouterPrefix = options.prefix;
111
- if (LAZY_ROUTER_PREFIX_SYMBOL in options.current && typeof options.current[LAZY_ROUTER_PREFIX_SYMBOL] === "string") {
112
- lazyRouterPrefix = `${options.current[LAZY_ROUTER_PREFIX_SYMBOL]}${lazyRouterPrefix ?? ""}`;
113
- }
114
- const decoratedLazy = Object.assign(decorateLazy(createLazy(loader)), {
115
- [LAZY_ROUTER_PREFIX_SYMBOL]: lazyRouterPrefix
116
- });
117
- const recursive = new Proxy(decoratedLazy, {
118
- get(target, key) {
119
- if (typeof key !== "string") {
120
- return Reflect.get(target, key);
121
- }
122
- return adaptLazyRouter({
123
- ...options,
124
- current: createLazy(async () => {
125
- const current = (await loadLazy(options.current)).default;
126
- return { default: current[key] };
127
- })
128
- });
129
- }
130
- });
131
- return recursive;
132
- }
133
- function adaptProcedure(options) {
134
- const builderMiddlewares = options.middlewares ?? [];
135
- const procedureMiddlewares = options.procedure.zz$p.middlewares ?? [];
136
- const middlewares = [
137
- ...builderMiddlewares,
138
- ...procedureMiddlewares.filter(
139
- (item) => !builderMiddlewares.includes(item)
140
- )
141
- ];
142
- let contract = DecoratedContractProcedure.decorate(
143
- options.procedure.zz$p.contract
144
- ).pushTag(...options.tags ?? []);
145
- if (options.prefix) {
146
- contract = contract.prefix(options.prefix);
147
- }
148
- return decorateProcedure({
149
- zz$p: {
150
- ...options.procedure.zz$p,
151
- contract,
152
- middlewares
153
- }
154
- });
155
- }
156
-
157
- // src/procedure-implementer.ts
158
- var ProcedureImplementer = class _ProcedureImplementer {
159
- constructor(zz$pi) {
160
- this.zz$pi = zz$pi;
161
- }
162
- use(middleware, mapInput) {
163
- const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
164
- return new _ProcedureImplementer({
165
- ...this.zz$pi,
166
- middlewares: [...this.zz$pi.middlewares ?? [], middleware_]
167
- });
168
- }
169
- func(func) {
170
- return decorateProcedure({
171
- zz$p: {
172
- middlewares: this.zz$pi.middlewares,
173
- contract: this.zz$pi.contract,
174
- func
175
- }
176
- });
177
- }
178
- lazy(loader) {
179
- return new RouterBuilder(this.zz$pi).lazy(loader);
180
- }
181
- };
182
-
183
- // src/procedure-builder.ts
184
- var ProcedureBuilder = class _ProcedureBuilder {
185
- constructor(zz$pb) {
186
- this.zz$pb = zz$pb;
187
- }
188
- /**
189
- * Self chainable
190
- */
191
- route(opts) {
192
- return new _ProcedureBuilder({
193
- ...this.zz$pb,
194
- contract: DecoratedContractProcedure2.decorate(this.zz$pb.contract).route(
195
- opts
196
- )
197
- });
198
- }
199
- input(schema, example) {
200
- return new _ProcedureBuilder({
201
- ...this.zz$pb,
202
- contract: DecoratedContractProcedure2.decorate(this.zz$pb.contract).input(
203
- schema,
204
- example
205
- )
206
- });
207
- }
208
- output(schema, example) {
209
- return new _ProcedureBuilder({
210
- ...this.zz$pb,
211
- contract: DecoratedContractProcedure2.decorate(this.zz$pb.contract).output(
212
- schema,
213
- example
214
- )
215
- });
216
- }
217
- use(middleware, mapInput) {
218
- if (!mapInput) {
219
- return new ProcedureImplementer({
220
- contract: this.zz$pb.contract,
221
- middlewares: this.zz$pb.middlewares
222
- }).use(middleware);
223
- }
224
- return new ProcedureImplementer({
225
- contract: this.zz$pb.contract,
226
- middlewares: this.zz$pb.middlewares
227
- }).use(middleware, mapInput);
228
- }
229
- /**
230
- * Convert to Procedure
231
- */
232
- func(func) {
233
- return decorateProcedure({
234
- zz$p: {
235
- middlewares: this.zz$pb.middlewares,
236
- contract: this.zz$pb.contract,
237
- func
238
- }
239
- });
240
- }
241
- };
242
-
243
- // src/router-implementer.ts
244
- import { isContractProcedure } from "@orpc/contract";
245
- var ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
246
- var RouterImplementer = class {
247
- constructor(zz$ri) {
248
- this.zz$ri = zz$ri;
249
- }
250
- router(router) {
251
- return Object.assign(new RouterBuilder({}).router(router), {
252
- [ROUTER_CONTRACT_SYMBOL]: this.zz$ri.contract
253
- });
254
- }
255
- lazy(loader) {
256
- const lazy = createLazy(loader);
257
- const decorated = decorateLazy(lazy);
258
- return Object.assign(decorated, {
259
- [ROUTER_CONTRACT_SYMBOL]: this.zz$ri.contract
260
- });
261
- }
262
- };
263
- function chainRouterImplementer(contract, middlewares) {
264
- const result = {};
265
- for (const key in contract) {
266
- const item = contract[key];
267
- if (isContractProcedure(item)) {
268
- result[key] = new ProcedureImplementer({
269
- contract: item,
270
- middlewares
271
- });
272
- } else {
273
- result[key] = chainRouterImplementer(item, middlewares);
274
- }
275
- }
276
- const implementer = new RouterImplementer({ contract });
277
- return Object.assign(implementer, result);
278
- }
279
-
280
- // src/builder.ts
281
- var Builder = class _Builder {
282
- constructor(zz$b = {}) {
283
- this.zz$b = zz$b;
284
- }
285
- /**
286
- * Self chainable
287
- */
288
- context() {
289
- return this;
290
- }
291
- use(middleware, mapInput) {
292
- const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
293
- return new _Builder({
294
- ...this.zz$b,
295
- middlewares: [...this.zz$b.middlewares || [], middleware_]
296
- });
297
- }
298
- /**
299
- * Convert to ContractProcedureBuilder
300
- */
301
- route(route) {
302
- return new ProcedureBuilder({
303
- middlewares: this.zz$b.middlewares,
304
- contract: new ContractProcedure({
305
- route,
306
- InputSchema: void 0,
307
- OutputSchema: void 0
308
- })
309
- });
310
- }
311
- input(schema, example) {
312
- return new ProcedureBuilder({
313
- middlewares: this.zz$b.middlewares,
314
- contract: new ContractProcedure({
315
- OutputSchema: void 0,
316
- InputSchema: schema,
317
- inputExample: example
318
- })
319
- });
320
- }
321
- output(schema, example) {
322
- return new ProcedureBuilder({
323
- middlewares: this.zz$b.middlewares,
324
- contract: new ContractProcedure({
325
- InputSchema: void 0,
326
- OutputSchema: schema,
327
- outputExample: example
328
- })
329
- });
330
- }
331
- /**
332
- * Convert to Procedure
333
- */
334
- func(func) {
335
- return decorateProcedure({
336
- zz$p: {
337
- middlewares: this.zz$b.middlewares,
338
- contract: new ContractProcedure({
339
- InputSchema: void 0,
340
- OutputSchema: void 0
341
- }),
342
- func
343
- }
344
- });
345
- }
346
- /**
347
- * Convert to ProcedureImplementer | RouterBuilder
348
- */
349
- contract(contract) {
350
- if (isContractProcedure2(contract)) {
351
- return new ProcedureImplementer({
352
- contract,
353
- middlewares: this.zz$b.middlewares
354
- });
355
- }
356
- return chainRouterImplementer(
357
- contract,
358
- this.zz$b.middlewares
359
- );
360
- }
361
- /**
362
- * Create ExtendedMiddleware
363
- */
364
- // TODO: TOutput always any, infer not work at all, because TOutput used inside middleware params,
365
- // solution (maybe): create new generic for .output() method
366
- middleware(middleware) {
367
- return decorateMiddleware(middleware);
368
- }
369
- prefix(prefix) {
370
- return new RouterBuilder({
371
- ...this.zz$b,
372
- prefix
373
- });
374
- }
375
- tags(...tags) {
376
- return new RouterBuilder({
377
- ...this.zz$b,
378
- tags
379
- });
380
- }
381
- /**
382
- * Create DecoratedRouter
383
- */
384
- router(router) {
385
- return new RouterBuilder(this.zz$b).router(router);
386
- }
387
- lazy(loader) {
388
- return new RouterBuilder(this.zz$b).lazy(loader);
389
- }
390
- };
391
-
392
- // src/router-caller.ts
393
- function createRouterCaller(options) {
394
- return createRouterCallerInternal(options);
395
- }
396
- function createRouterCallerInternal(options) {
397
- const procedureCaller = isLazy(options.router) || isProcedure(options.router) ? createProcedureCaller({
398
- ...options,
399
- procedure: options.router,
400
- context: options.context,
401
- path: options.basePath
402
- }) : {};
403
- const recursive = new Proxy(procedureCaller, {
404
- get(target, key) {
405
- if (typeof key !== "string") {
406
- return Reflect.get(target, key);
407
- }
408
- const next = options.router[key];
409
- return createRouterCallerInternal({
410
- ...options,
411
- router: next,
412
- basePath: [...options.basePath ?? [], key]
413
- });
414
- }
415
- });
416
- return recursive;
417
- }
418
-
419
- // src/index.ts
420
- export * from "@orpc/shared/error";
421
- var os = new Builder();
422
- export {
423
- Builder,
424
- LAZY_LOADER_SYMBOL,
425
- LAZY_ROUTER_PREFIX_SYMBOL,
426
- Procedure,
427
- ProcedureBuilder,
428
- ProcedureImplementer,
429
- ROUTER_CONTRACT_SYMBOL,
430
- RouterBuilder,
431
- RouterImplementer,
432
- chainRouterImplementer,
433
- createFlattenLazy,
434
- createLazy,
435
- createProcedureCaller,
436
- createRouterCaller,
437
- decorateLazy,
438
- decorateMiddleware,
439
- decorateProcedure,
440
- isLazy,
441
- isProcedure,
442
- loadLazy,
443
- loadProcedure,
444
- mergeContext,
445
- os
446
- };
447
- //# sourceMappingURL=index.js.map
@@ -1,54 +0,0 @@
1
- import type { ANY_CONTRACT_PROCEDURE, ContractRouter, HTTPPath, RouteOptions, Schema, SchemaInput, SchemaOutput } from '@orpc/contract';
2
- import type { IsEqual } from '@orpc/shared';
3
- import type { DecoratedLazy } from './lazy';
4
- import type { DecoratedProcedure, Procedure, ProcedureFunc } from './procedure';
5
- import type { HandledRouter, Router } from './router';
6
- import type { Context, MergeContext } from './types';
7
- import { ContractProcedure } from '@orpc/contract';
8
- import { type DecoratedMiddleware, type MapInputMiddleware, type Middleware } from './middleware';
9
- import { ProcedureBuilder } from './procedure-builder';
10
- import { ProcedureImplementer } from './procedure-implementer';
11
- import { RouterBuilder } from './router-builder';
12
- import { type ChainedRouterImplementer } from './router-implementer';
13
- export declare class Builder<TContext extends Context, TExtraContext extends Context> {
14
- zz$b: {
15
- middlewares?: Middleware<any, any, any, any>[];
16
- };
17
- constructor(zz$b?: {
18
- middlewares?: Middleware<any, any, any, any>[];
19
- });
20
- /**
21
- * Self chainable
22
- */
23
- context<UContext extends Context>(): IsEqual<UContext, Context> extends true ? Builder<TContext, TExtraContext> : Builder<UContext, TExtraContext>;
24
- use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, unknown, unknown>): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>;
25
- 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>>;
26
- /**
27
- * Convert to ContractProcedureBuilder
28
- */
29
- route(route: RouteOptions): ProcedureBuilder<TContext, TExtraContext, undefined, undefined>;
30
- input<USchema extends Schema = undefined>(schema: USchema, example?: SchemaInput<USchema>): ProcedureBuilder<TContext, TExtraContext, USchema, undefined>;
31
- output<USchema extends Schema = undefined>(schema: USchema, example?: SchemaOutput<USchema>): ProcedureBuilder<TContext, TExtraContext, undefined, USchema>;
32
- /**
33
- * Convert to Procedure
34
- */
35
- func<UFuncOutput = undefined>(func: ProcedureFunc<TContext, TExtraContext, undefined, undefined, UFuncOutput>): DecoratedProcedure<TContext, TExtraContext, undefined, undefined, UFuncOutput>;
36
- /**
37
- * Convert to ProcedureImplementer | RouterBuilder
38
- */
39
- contract<UContract extends ANY_CONTRACT_PROCEDURE | ContractRouter>(contract: UContract): UContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema> : UContract extends ContractRouter ? ChainedRouterImplementer<TContext, UContract, TExtraContext> : never;
40
- /**
41
- * Create ExtendedMiddleware
42
- */
43
- middleware<UExtraContext extends Context = undefined, TInput = unknown, TOutput = any>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, TOutput>): DecoratedMiddleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, TOutput>;
44
- prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext>;
45
- tags(...tags: string[]): RouterBuilder<TContext, TExtraContext>;
46
- /**
47
- * Create DecoratedRouter
48
- */
49
- router<URouter extends Router<TContext>>(router: URouter): HandledRouter<URouter>;
50
- lazy<U extends Router<TContext> | Procedure<TContext, any, any, any, any>>(loader: () => Promise<{
51
- default: U;
52
- }>): DecoratedLazy<U>;
53
- }
54
- //# 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,3 +0,0 @@
1
- import type { FetchHandler } from './types';
2
- export declare function createORPCHandler(): FetchHandler;
3
- //# sourceMappingURL=handler.d.ts.map
@@ -1,4 +0,0 @@
1
- export * from './handle';
2
- export * from './handler';
3
- export * from './types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1,28 +0,0 @@
1
- import type { Hooks, PartialOnUndefinedDeep, Value } from '@orpc/shared';
2
- import type { Router } from '../router';
3
- import type { CallerOptions } from '../types';
4
- export type FetchHandlerOptions<TRouter extends Router<any>> = {
5
- /**
6
- * The `router` used for handling the request and routing,
7
- *
8
- */
9
- router: TRouter;
10
- /**
11
- * The request need to be handled.
12
- */
13
- request: Request;
14
- /**
15
- * Remove the prefix from the request path.
16
- *
17
- * @example /orpc
18
- * @example /api
19
- */
20
- prefix?: string;
21
- } & PartialOnUndefinedDeep<{
22
- /**
23
- * The context used to handle the request.
24
- */
25
- context: Value<TRouter extends Router<infer UContext> ? UContext : never>;
26
- }> & CallerOptions & Hooks<Request, Response, TRouter extends Router<infer UContext> ? UContext : never, CallerOptions>;
27
- export type FetchHandler = <TRouter extends Router<any>>(options: FetchHandlerOptions<TRouter>) => Promise<Response | undefined>;
28
- //# sourceMappingURL=types.d.ts.map
@@ -1,17 +0,0 @@
1
- import { Builder } from './builder';
2
- export * from './builder';
3
- export * from './lazy';
4
- export * from './middleware';
5
- export * from './procedure';
6
- export * from './procedure-builder';
7
- export * from './procedure-caller';
8
- export * from './procedure-implementer';
9
- export * from './router';
10
- export * from './router-builder';
11
- export * from './router-caller';
12
- export * from './router-implementer';
13
- export * from './types';
14
- export * from './utils';
15
- export * from '@orpc/shared/error';
16
- export declare const os: Builder<Record<string, unknown> | undefined, undefined>;
17
- //# sourceMappingURL=index.d.ts.map
@@ -1,23 +0,0 @@
1
- import type { Procedure } from './procedure';
2
- import type { ProcedureCaller } from './procedure-caller';
3
- export declare const LAZY_LOADER_SYMBOL: unique symbol;
4
- export interface Lazy<T> {
5
- [LAZY_LOADER_SYMBOL]: () => Promise<{
6
- default: T;
7
- }>;
8
- }
9
- export type ANY_LAZY = Lazy<any>;
10
- export declare function createLazy<T>(loader: () => Promise<{
11
- default: T;
12
- }>): Lazy<T>;
13
- export declare function loadLazy<T>(lazy: Lazy<T>): Promise<{
14
- default: T;
15
- }>;
16
- export declare function isLazy(item: unknown): item is ANY_LAZY;
17
- export type FlattenLazy<T> = T extends Lazy<infer U> ? FlattenLazy<U> : Lazy<T>;
18
- export declare function createFlattenLazy<T>(lazy: Lazy<T>): FlattenLazy<T>;
19
- export type DecoratedLazy<T> = T extends Lazy<infer U> ? DecoratedLazy<U> : (T extends Procedure<infer UContext, any, any, any, any> ? Lazy<T> & (undefined extends UContext ? ProcedureCaller<T> : unknown) : T extends Record<any, any> ? {
20
- [K in keyof T]: DecoratedLazy<T[K]>;
21
- } /** Notice: this still a lazy, but type not work when I & Lazy<T>, maybe it's a bug, should improve */ : Lazy<T>);
22
- export declare function decorateLazy<T>(lazy: Lazy<T>): DecoratedLazy<T>;
23
- //# sourceMappingURL=lazy.d.ts.map