@orpc/server 0.0.0-next.d137cdf → 0.0.0-next.d7b5662

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. package/dist/chunk-YAVPFNPF.js +182 -0
  2. package/dist/fetch.js +251 -75
  3. package/dist/index.js +366 -315
  4. package/dist/src/builder.d.ts +25 -43
  5. package/dist/src/fetch/composite-handler.d.ts +8 -0
  6. package/dist/src/fetch/index.d.ts +4 -2
  7. package/dist/src/fetch/orpc-handler.d.ts +20 -0
  8. package/dist/src/fetch/orpc-payload-codec.d.ts +9 -0
  9. package/dist/src/fetch/orpc-procedure-matcher.d.ts +12 -0
  10. package/dist/src/fetch/super-json.d.ts +12 -0
  11. package/dist/src/fetch/types.d.ts +15 -26
  12. package/dist/src/hidden.d.ts +6 -0
  13. package/dist/src/implementer-chainable.d.ts +10 -0
  14. package/dist/src/index.d.ts +9 -3
  15. package/dist/src/lazy-decorated.d.ts +10 -0
  16. package/dist/src/lazy-utils.d.ts +4 -0
  17. package/dist/src/lazy.d.ts +6 -11
  18. package/dist/src/middleware-decorated.d.ts +8 -0
  19. package/dist/src/middleware.d.ts +3 -6
  20. package/dist/src/procedure-builder.d.ts +15 -24
  21. package/dist/src/procedure-client.d.ts +34 -0
  22. package/dist/src/procedure-decorated.d.ts +14 -0
  23. package/dist/src/procedure-implementer.d.ts +13 -17
  24. package/dist/src/procedure.d.ts +15 -24
  25. package/dist/src/router-builder.d.ts +23 -21
  26. package/dist/src/router-client.d.ts +25 -0
  27. package/dist/src/router-implementer.d.ts +18 -21
  28. package/dist/src/router.d.ts +11 -16
  29. package/dist/src/types.d.ts +8 -4
  30. package/package.json +4 -9
  31. package/dist/chunk-MZXEMHFS.js +0 -272
  32. package/dist/src/fetch/handle.d.ts +0 -7
  33. package/dist/src/fetch/handler.d.ts +0 -3
  34. package/dist/src/procedure-caller.d.ts +0 -25
  35. package/dist/src/router-caller.d.ts +0 -25
@@ -0,0 +1,25 @@
1
+ import type { ContractProcedure, ContractRouter, SchemaInput, SchemaOutput } from '@orpc/contract';
2
+ import type { Hooks, Value } from '@orpc/shared';
3
+ import type { Lazy } from './lazy';
4
+ import type { Procedure } from './procedure';
5
+ import type { ProcedureClient } from './procedure-client';
6
+ import type { Meta } from './types';
7
+ import { type ANY_ROUTER, type Router } from './router';
8
+ export type RouterClient<TRouter extends ANY_ROUTER | ContractRouter, TClientContext> = TRouter extends Lazy<infer U extends ANY_ROUTER | ContractRouter> ? RouterClient<U, TClientContext> : TRouter extends ContractProcedure<infer UInputSchema, infer UOutputSchema> | Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> ? ProcedureClient<SchemaInput<UInputSchema>, SchemaOutput<UOutputSchema, UFuncOutput>, TClientContext> : {
9
+ [K in keyof TRouter]: TRouter[K] extends ANY_ROUTER | ContractRouter ? RouterClient<TRouter[K], TClientContext> : never;
10
+ };
11
+ export type CreateRouterClientOptions<TRouter extends ANY_ROUTER> = {
12
+ router: TRouter | Lazy<undefined>;
13
+ /**
14
+ * This is helpful for logging and analytics.
15
+ *
16
+ * @internal
17
+ */
18
+ path?: string[];
19
+ } & (TRouter extends Router<infer UContext, any> ? undefined extends UContext ? {
20
+ context?: Value<UContext>;
21
+ } : {
22
+ context: Value<UContext>;
23
+ } : never) & Hooks<unknown, unknown, TRouter extends Router<infer UContext, any> ? UContext : never, Meta>;
24
+ export declare function createRouterClient<TRouter extends ANY_ROUTER>(options: CreateRouterClientOptions<TRouter>): RouterClient<TRouter, unknown>;
25
+ //# sourceMappingURL=router-client.d.ts.map
@@ -1,24 +1,21 @@
1
- import type { DecoratedLazy } from './lazy';
1
+ import type { ContractRouter } from '@orpc/contract';
2
+ import type { FlattenLazy } from './lazy';
2
3
  import type { Middleware } from './middleware';
3
- import type { HandledRouter, RouterWithContract } from './router';
4
- import type { Context } from './types';
5
- import { type ContractProcedure, type ContractRouter } from '@orpc/contract';
6
- import { ProcedureImplementer } from './procedure-implementer';
7
- export declare const ROUTER_CONTRACT_SYMBOL: unique symbol;
8
- export declare class RouterImplementer<TContext extends Context, TContract extends ContractRouter> {
9
- zz$ri: {
10
- contract: TContract;
11
- };
12
- constructor(zz$ri: {
13
- contract: TContract;
14
- });
15
- router(router: RouterWithContract<TContext, TContract>): HandledRouter<RouterWithContract<TContext, TContract>>;
16
- lazy(loader: () => Promise<{
17
- default: RouterWithContract<TContext, TContract>;
18
- }>): DecoratedLazy<RouterWithContract<TContext, TContract>>;
4
+ import type { Router } from './router';
5
+ import type { AdaptedRouter } from './router-builder';
6
+ import type { Context, MergeContext } from './types';
7
+ export interface RouterImplementerDef<TContext extends Context, TExtraContext extends Context, TContract extends ContractRouter> {
8
+ middlewares?: Middleware<MergeContext<TContext, TExtraContext>, Partial<TExtraContext> | undefined, unknown, any>[];
9
+ contract: TContract;
10
+ }
11
+ export declare class RouterImplementer<TContext extends Context, TExtraContext extends Context, TContract extends ContractRouter> {
12
+ '~type': "RouterImplementer";
13
+ '~orpc': RouterImplementerDef<TContext, TExtraContext, TContract>;
14
+ constructor(def: RouterImplementerDef<TContext, TExtraContext, TContract>);
15
+ use<U extends Context & Partial<MergeContext<TContext, TExtraContext>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, U, unknown, unknown>): RouterImplementer<TContext, MergeContext<TExtraContext, U>, TContract>;
16
+ router<U extends Router<MergeContext<TContext, TExtraContext>, TContract>>(router: U): AdaptedRouter<TContext, U>;
17
+ lazy<U extends Router<MergeContext<TContext, TExtraContext>, TContract>>(loader: () => Promise<{
18
+ default: U;
19
+ }>): AdaptedRouter<TContext, FlattenLazy<U>>;
19
20
  }
20
- export type ChainedRouterImplementer<TContext extends Context, TContract extends ContractRouter, TExtraContext extends Context> = {
21
- [K in keyof TContract]: TContract[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema> : TContract[K] extends ContractRouter ? ChainedRouterImplementer<TContext, TContract[K], TExtraContext> : never;
22
- } & RouterImplementer<TContext, TContract>;
23
- export declare function chainRouterImplementer<TContext extends Context, TContract extends ContractRouter, TExtraContext extends Context>(contract: TContract, middlewares?: Middleware<any, any, any, any>[]): ChainedRouterImplementer<TContext, TContract, TExtraContext>;
24
21
  //# sourceMappingURL=router-implementer.d.ts.map
@@ -1,21 +1,16 @@
1
1
  import type { ContractProcedure, ContractRouter, SchemaInput, SchemaOutput } from '@orpc/contract';
2
- import type { ANY_LAZY, DecoratedLazy, Lazy } from './lazy';
2
+ import type { ANY_LAZY, Lazy, Lazyable } from './lazy';
3
+ import type { ANY_PROCEDURE, Procedure } from './procedure';
3
4
  import type { Context } from './types';
4
- import { type DecoratedProcedure, type Procedure } from './procedure';
5
- export interface Router<TContext extends Context> {
6
- [k: string]: Procedure<TContext, any, any, any, any> | Lazy<Procedure<TContext, any, any, any, any>> | Router<TContext> | Lazy<Router<TContext>>;
7
- }
8
- export type HandledRouter<TRouter extends Router<any>> = {
9
- [K in keyof TRouter]: TRouter[K] extends Procedure<infer UContext, infer UExtraContext, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> ? DecoratedProcedure<UContext, UExtraContext, UInputSchema, UOutputSchema, UFuncOutput> : TRouter[K] extends ANY_LAZY ? DecoratedLazy<TRouter[K]> : TRouter[K] extends Router<any> ? HandledRouter<TRouter[K]> : never;
5
+ export type Router<TContext extends Context, TContract extends ContractRouter> = Lazyable<TContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? Procedure<TContext, any, UInputSchema, UOutputSchema, any> : {
6
+ [K in keyof TContract]: TContract[K] extends ContractRouter ? Router<TContext, TContract[K]> : never;
7
+ }>;
8
+ export type ANY_ROUTER = Router<any, any>;
9
+ export type InferRouterInputs<T extends ANY_ROUTER> = T extends Lazy<infer U extends ANY_ROUTER> ? InferRouterInputs<U> : T extends Procedure<any, any, infer UInputSchema, any, any> ? SchemaInput<UInputSchema> : {
10
+ [K in keyof T]: T[K] extends ANY_ROUTER ? InferRouterInputs<T[K]> : never;
10
11
  };
11
- export type RouterWithContract<TContext extends Context, TContract extends ContractRouter> = {
12
- [K in keyof TContract]: TContract[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? Procedure<TContext, any, UInputSchema, UOutputSchema, any> | Lazy<Procedure<TContext, any, UInputSchema, UOutputSchema, any>> : TContract[K] extends ContractRouter ? RouterWithContract<TContext, TContract[K]> | Lazy<RouterWithContract<TContext, TContract[K]>> : never;
13
- };
14
- export declare function toContractRouter(router: ContractRouter | Router<any>): ContractRouter;
15
- export type InferRouterInputs<T extends Router<any>> = {
16
- [K in keyof T]: T[K] extends Procedure<any, any, infer UInputSchema, any, any> | Lazy<Procedure<any, any, infer UInputSchema, any, any>> ? SchemaInput<UInputSchema> : T[K] extends Router<any> ? InferRouterInputs<T[K]> : never;
17
- };
18
- export type InferRouterOutputs<T extends Router<any>> = {
19
- [K in keyof T]: T[K] extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput> | Lazy<Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput>> ? SchemaOutput<UOutputSchema, UFuncOutput> : T[K] extends Router<any> ? InferRouterOutputs<T[K]> : never;
12
+ export type InferRouterOutputs<T extends ANY_ROUTER> = T extends Lazy<infer U extends ANY_ROUTER> ? InferRouterOutputs<U> : T extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput> ? SchemaOutput<UOutputSchema, UFuncOutput> : {
13
+ [K in keyof T]: T[K] extends ANY_ROUTER ? InferRouterOutputs<T[K]> : never;
20
14
  };
15
+ export declare function getRouterChild<T extends ANY_ROUTER | Lazy<undefined>>(router: T, ...path: string[]): T extends ANY_LAZY ? Lazy<ANY_PROCEDURE | Record<string, ANY_ROUTER> | undefined> : ANY_ROUTER | Lazy<undefined> | undefined;
21
16
  //# sourceMappingURL=router.d.ts.map
@@ -1,8 +1,12 @@
1
- import type { WELL_DEFINED_PROCEDURE } from './procedure';
2
- export type Context = Record<string, unknown> | undefined;
1
+ import type { ANY_PROCEDURE } from './procedure';
2
+ export type Context = Record<string, any> | undefined;
3
+ export type WELL_CONTEXT = Record<string, unknown> | undefined;
3
4
  export type MergeContext<TA extends Context, TB extends Context> = TA extends undefined ? TB : TB extends undefined ? TA : TA & TB;
4
- export interface Meta {
5
+ export interface WithSignal {
6
+ signal?: AbortSignal;
7
+ }
8
+ export interface Meta extends WithSignal {
5
9
  path: string[];
6
- procedure: WELL_DEFINED_PROCEDURE;
10
+ procedure: ANY_PROCEDURE;
7
11
  }
8
12
  //# sourceMappingURL=types.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "0.0.0-next.d137cdf",
4
+ "version": "0.0.0-next.d7b5662",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -33,17 +33,12 @@
33
33
  "!**/*.tsbuildinfo",
34
34
  "dist"
35
35
  ],
36
- "peerDependencies": {
37
- "zod": ">=3.23.0",
38
- "@orpc/zod": "0.0.0-next.d137cdf"
39
- },
40
36
  "dependencies": {
41
- "@orpc/contract": "0.0.0-next.d137cdf",
42
- "@orpc/transformer": "0.0.0-next.d137cdf",
43
- "@orpc/shared": "0.0.0-next.d137cdf"
37
+ "@orpc/contract": "0.0.0-next.d7b5662",
38
+ "@orpc/shared": "0.0.0-next.d7b5662"
44
39
  },
45
40
  "devDependencies": {
46
- "@orpc/openapi": "0.0.0-next.d137cdf"
41
+ "zod": "^3.24.1"
47
42
  },
48
43
  "scripts": {
49
44
  "build": "tsup --clean --sourcemap --entry.index=src/index.ts --entry.fetch=src/fetch/index.ts --format=esm --onSuccess='tsc -b --noCheck'",
@@ -1,272 +0,0 @@
1
- // src/utils.ts
2
- function mergeContext(a, b) {
3
- if (!a)
4
- return b;
5
- if (!b)
6
- return a;
7
- return {
8
- ...a,
9
- ...b
10
- };
11
- }
12
-
13
- // src/middleware.ts
14
- var decoratedMiddlewareSymbol = Symbol("\u{1F512}decoratedMiddleware");
15
- function decorateMiddleware(middleware) {
16
- if (Reflect.get(middleware, decoratedMiddlewareSymbol)) {
17
- return middleware;
18
- }
19
- const concat = (concatMiddleware, mapInput2) => {
20
- const concatMiddleware_ = mapInput2 ? decorateMiddleware(concatMiddleware).mapInput(mapInput2) : concatMiddleware;
21
- return decorateMiddleware(async (input, context, meta, ...rest) => {
22
- const input_ = input;
23
- const context_ = context;
24
- const meta_ = meta;
25
- const next = async (options) => {
26
- return concatMiddleware_(input_, mergeContext(context_, options.context), meta_, ...rest);
27
- };
28
- const m1 = await middleware(input_, context_, {
29
- ...meta_,
30
- next
31
- }, ...rest);
32
- return m1;
33
- });
34
- };
35
- const mapInput = (map) => {
36
- return decorateMiddleware(
37
- (input, ...rest) => middleware(map(input), ...rest)
38
- );
39
- };
40
- return Object.assign(middleware, {
41
- [decoratedMiddlewareSymbol]: true,
42
- concat,
43
- mapInput
44
- });
45
- }
46
-
47
- // src/procedure-caller.ts
48
- import { executeWithHooks, trim, value } from "@orpc/shared";
49
- import { ORPCError } from "@orpc/shared/error";
50
-
51
- // src/procedure.ts
52
- import {
53
- DecoratedContractProcedure,
54
- isContractProcedure
55
- } from "@orpc/contract";
56
- var Procedure = class {
57
- constructor(zz$p) {
58
- this.zz$p = zz$p;
59
- }
60
- };
61
- var DECORATED_PROCEDURE_SYMBOL = Symbol("DECORATED_PROCEDURE");
62
- function decorateProcedure(procedure) {
63
- if (DECORATED_PROCEDURE_SYMBOL in procedure) {
64
- return procedure;
65
- }
66
- return Object.assign(createProcedureCaller({
67
- procedure,
68
- context: void 0
69
- }), {
70
- [DECORATED_PROCEDURE_SYMBOL]: true,
71
- zz$p: procedure.zz$p,
72
- prefix(prefix) {
73
- return decorateProcedure({
74
- zz$p: {
75
- ...procedure.zz$p,
76
- contract: DecoratedContractProcedure.decorate(
77
- procedure.zz$p.contract
78
- ).prefix(prefix)
79
- }
80
- });
81
- },
82
- route(opts) {
83
- return decorateProcedure({
84
- zz$p: {
85
- ...procedure.zz$p,
86
- contract: DecoratedContractProcedure.decorate(
87
- procedure.zz$p.contract
88
- ).route(opts)
89
- }
90
- });
91
- },
92
- use(middleware, mapInput) {
93
- const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
94
- return decorateProcedure({
95
- zz$p: {
96
- ...procedure.zz$p,
97
- middlewares: [middleware_, ...procedure.zz$p.middlewares ?? []]
98
- }
99
- });
100
- }
101
- });
102
- }
103
- function isProcedure(item) {
104
- if (item instanceof Procedure)
105
- return true;
106
- return (typeof item === "object" || typeof item === "function") && item !== null && "zz$p" in item && typeof item.zz$p === "object" && item.zz$p !== null && "contract" in item.zz$p && isContractProcedure(item.zz$p.contract) && "func" in item.zz$p && typeof item.zz$p.func === "function";
107
- }
108
-
109
- // src/procedure-caller.ts
110
- function createProcedureCaller(options) {
111
- const caller = async (input) => {
112
- const path = options.path ?? [];
113
- const procedure = await loadProcedure(options.procedure);
114
- const context = await value(options.context);
115
- const execute = async () => {
116
- const validInput = (() => {
117
- const schema = procedure.zz$p.contract.zz$cp.InputSchema;
118
- if (!schema) {
119
- return input;
120
- }
121
- try {
122
- return schema.parse(input);
123
- } catch (e) {
124
- throw new ORPCError({
125
- message: "Validation input failed",
126
- code: "BAD_REQUEST",
127
- cause: e
128
- });
129
- }
130
- })();
131
- const middlewares = procedure.zz$p.middlewares ?? [];
132
- let currentMidIndex = 0;
133
- let currentContext = context;
134
- const next = async (nextOptions) => {
135
- const mid = middlewares[currentMidIndex];
136
- currentMidIndex += 1;
137
- currentContext = mergeContext(currentContext, nextOptions.context);
138
- if (mid) {
139
- return await mid(validInput, currentContext, {
140
- path,
141
- procedure,
142
- next,
143
- output: (output3) => ({ output: output3, context: void 0 })
144
- });
145
- } else {
146
- return {
147
- output: await await procedure.zz$p.func(validInput, currentContext, {
148
- path,
149
- procedure
150
- }),
151
- context: currentContext
152
- };
153
- }
154
- };
155
- const output2 = (await next({})).output;
156
- const validOutput = await (async () => {
157
- const schema = procedure.zz$p.contract.zz$cp.OutputSchema;
158
- if (!schema) {
159
- return output2;
160
- }
161
- const result = await schema.safeParseAsync(output2);
162
- if (result.error) {
163
- throw new ORPCError({
164
- message: "Validation output failed",
165
- code: "INTERNAL_SERVER_ERROR",
166
- cause: result.error
167
- });
168
- }
169
- return result.data;
170
- })();
171
- return validOutput;
172
- };
173
- const output = await executeWithHooks({
174
- hooks: options,
175
- input,
176
- context,
177
- meta: {
178
- path,
179
- procedure
180
- },
181
- execute
182
- });
183
- return output;
184
- };
185
- return caller;
186
- }
187
- async function loadProcedure(procedure) {
188
- let loadedProcedure;
189
- if (isLazy(procedure)) {
190
- loadedProcedure = (await loadLazy(procedure)).default;
191
- } else {
192
- loadedProcedure = procedure;
193
- }
194
- if (!isProcedure(loadedProcedure)) {
195
- throw new ORPCError({
196
- code: "NOT_FOUND",
197
- message: "Not found",
198
- cause: new Error(trim(`
199
- This error should be caught by the typescript compiler.
200
- But if you still see this error, it means that you trying to call a lazy router (expected to be a lazy procedure).
201
- `))
202
- });
203
- }
204
- return loadedProcedure;
205
- }
206
-
207
- // src/lazy.ts
208
- var LAZY_LOADER_SYMBOL = Symbol("ORPC_LAZY_LOADER");
209
- function createLazy(loader) {
210
- return {
211
- [LAZY_LOADER_SYMBOL]: loader
212
- };
213
- }
214
- function loadLazy(lazy) {
215
- return lazy[LAZY_LOADER_SYMBOL]();
216
- }
217
- function isLazy(item) {
218
- return (typeof item === "object" || typeof item === "function") && item !== null && LAZY_LOADER_SYMBOL in item && typeof item[LAZY_LOADER_SYMBOL] === "function";
219
- }
220
- function createFlattenLazy(lazy) {
221
- const flattenLoader = async () => {
222
- let current = await loadLazy(lazy);
223
- while (true) {
224
- if (!isLazy(current.default)) {
225
- break;
226
- }
227
- current = await loadLazy(current.default);
228
- }
229
- return current;
230
- };
231
- const flattenLazy = {
232
- [LAZY_LOADER_SYMBOL]: flattenLoader
233
- };
234
- return flattenLazy;
235
- }
236
- function decorateLazy(lazy) {
237
- const flattenLazy = createFlattenLazy(lazy);
238
- const procedureCaller = createProcedureCaller({
239
- procedure: flattenLazy,
240
- context: void 0
241
- });
242
- Object.assign(procedureCaller, flattenLazy);
243
- const recursive = new Proxy(procedureCaller, {
244
- get(target, key) {
245
- if (typeof key !== "string") {
246
- return Reflect.get(target, key);
247
- }
248
- return decorateLazy(createLazy(async () => {
249
- const current = await loadLazy(flattenLazy);
250
- return { default: current.default[key] };
251
- }));
252
- }
253
- });
254
- return recursive;
255
- }
256
-
257
- export {
258
- mergeContext,
259
- decorateMiddleware,
260
- LAZY_LOADER_SYMBOL,
261
- createLazy,
262
- loadLazy,
263
- isLazy,
264
- createFlattenLazy,
265
- decorateLazy,
266
- createProcedureCaller,
267
- loadProcedure,
268
- Procedure,
269
- decorateProcedure,
270
- isProcedure
271
- };
272
- //# sourceMappingURL=chunk-MZXEMHFS.js.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,25 +0,0 @@
1
- import type { SchemaInput, SchemaOutput } from '@orpc/contract';
2
- import type { Hooks, PartialOnUndefinedDeep, Value } from '@orpc/shared';
3
- import type { Lazy } from './lazy';
4
- import type { ANY_LAZY_PROCEDURE, ANY_PROCEDURE, Procedure } from './procedure';
5
- export type CreateProcedureCallerOptions<T extends ANY_PROCEDURE | ANY_LAZY_PROCEDURE> = T extends Procedure<infer UContext, any, any, infer UOutputSchema, infer UFuncOutput> | Lazy<Procedure<infer UContext, any, any, infer UOutputSchema, infer UFuncOutput>> ? {
6
- procedure: T;
7
- /**
8
- * This is helpful for logging and analytics.
9
- *
10
- * @internal
11
- */
12
- path?: string[];
13
- } & PartialOnUndefinedDeep<{
14
- /**
15
- * The context used when calling the procedure.
16
- */
17
- context: Value<UContext>;
18
- }> & Hooks<unknown, SchemaOutput<UOutputSchema, UFuncOutput>, UContext, {
19
- path: string[];
20
- procedure: ANY_PROCEDURE;
21
- }> : never;
22
- export type ProcedureCaller<TProcedure extends ANY_PROCEDURE | ANY_LAZY_PROCEDURE> = TProcedure extends Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> | Lazy<Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UFuncOutput>> ? (...input: [input: SchemaInput<UInputSchema>] | (undefined extends SchemaInput<UInputSchema> ? [] : never)) => Promise<SchemaOutput<UOutputSchema, UFuncOutput>> : never;
23
- export declare function createProcedureCaller<TProcedure extends ANY_PROCEDURE | ANY_LAZY_PROCEDURE>(options: CreateProcedureCallerOptions<TProcedure>): ProcedureCaller<TProcedure>;
24
- export declare function loadProcedure(procedure: ANY_PROCEDURE | ANY_LAZY_PROCEDURE): Promise<ANY_PROCEDURE>;
25
- //# sourceMappingURL=procedure-caller.d.ts.map
@@ -1,25 +0,0 @@
1
- import type { Hooks, Value } from '@orpc/shared';
2
- import type { ANY_LAZY_PROCEDURE, ANY_PROCEDURE } from './procedure';
3
- import type { Router } from './router';
4
- import { type ProcedureCaller } from './procedure-caller';
5
- export interface CreateRouterCallerOptions<TRouter extends Router<any>> extends Hooks<unknown, unknown, TRouter extends Router<infer UContext> ? UContext : never, {
6
- path: string[];
7
- procedure: ANY_PROCEDURE;
8
- }> {
9
- router: TRouter;
10
- /**
11
- * The context used when calling the procedure.
12
- */
13
- context: Value<TRouter extends Router<infer UContext> ? UContext : never>;
14
- /**
15
- * This is helpful for logging and analytics.
16
- *
17
- * @internal
18
- */
19
- basePath?: string[];
20
- }
21
- export type RouterCaller<TRouter extends Router<any>> = {
22
- [K in keyof TRouter]: TRouter[K] extends ANY_PROCEDURE | ANY_LAZY_PROCEDURE ? ProcedureCaller<TRouter[K]> : TRouter[K] extends Router<any> ? RouterCaller<TRouter[K]> : never;
23
- };
24
- export declare function createRouterCaller<TRouter extends Router<any>>(options: CreateRouterCallerOptions<TRouter>): RouterCaller<TRouter>;
25
- //# sourceMappingURL=router-caller.d.ts.map