@orpc/server 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/chunk-ACLC6USM.js +262 -0
- package/dist/chunk-ACLC6USM.js.map +1 -0
- package/dist/fetch.js +648 -0
- package/dist/fetch.js.map +1 -0
- package/dist/index.js +403 -0
- package/dist/index.js.map +1 -0
- package/dist/src/adapters/fetch.d.ts +36 -0
- package/dist/src/adapters/fetch.d.ts.map +1 -0
- package/dist/src/builder.d.ts +49 -0
- package/dist/src/builder.d.ts.map +1 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/middleware.d.ts +16 -0
- package/dist/src/middleware.d.ts.map +1 -0
- package/dist/src/procedure-builder.d.ts +31 -0
- package/dist/src/procedure-builder.d.ts.map +1 -0
- package/dist/src/procedure-caller.d.ts +33 -0
- package/dist/src/procedure-caller.d.ts.map +1 -0
- package/dist/src/procedure-implementer.d.ts +19 -0
- package/dist/src/procedure-implementer.d.ts.map +1 -0
- package/dist/src/procedure.d.ts +29 -0
- package/dist/src/procedure.d.ts.map +1 -0
- package/dist/src/router-builder.d.ts +22 -0
- package/dist/src/router-builder.d.ts.map +1 -0
- package/dist/src/router-caller.d.ts +36 -0
- package/dist/src/router-caller.d.ts.map +1 -0
- package/dist/src/router-implementer.d.ts +20 -0
- package/dist/src/router-implementer.d.ts.map +1 -0
- package/dist/src/router.d.ts +14 -0
- package/dist/src/router.d.ts.map +1 -0
- package/dist/src/types.d.ts +18 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/utils.d.ts +4 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +57 -0
- package/src/adapters/fetch.test.ts +399 -0
- package/src/adapters/fetch.ts +228 -0
- package/src/builder.test.ts +362 -0
- package/src/builder.ts +236 -0
- package/src/index.ts +16 -0
- package/src/middleware.test.ts +279 -0
- package/src/middleware.ts +119 -0
- package/src/procedure-builder.test.ts +219 -0
- package/src/procedure-builder.ts +158 -0
- package/src/procedure-caller.test.ts +210 -0
- package/src/procedure-caller.ts +165 -0
- package/src/procedure-implementer.test.ts +215 -0
- package/src/procedure-implementer.ts +103 -0
- package/src/procedure.test.ts +312 -0
- package/src/procedure.ts +251 -0
- package/src/router-builder.test.ts +106 -0
- package/src/router-builder.ts +120 -0
- package/src/router-caller.test.ts +173 -0
- package/src/router-caller.ts +95 -0
- package/src/router-implementer.test.ts +116 -0
- package/src/router-implementer.ts +110 -0
- package/src/router.test.ts +142 -0
- package/src/router.ts +69 -0
- package/src/types.test.ts +18 -0
- package/src/types.ts +28 -0
- package/src/utils.test.ts +243 -0
- package/src/utils.ts +95 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
import { ContractProcedure, type ContractRouter, type HTTPPath, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
|
2
|
+
import type { IsEqual } from '@orpc/shared';
|
3
|
+
import { type DecoratedMiddleware, type MapInputMiddleware, type Middleware } from './middleware';
|
4
|
+
import { type DecoratedProcedure, type ProcedureHandler } from './procedure';
|
5
|
+
import { ProcedureBuilder } from './procedure-builder';
|
6
|
+
import { ProcedureImplementer } from './procedure-implementer';
|
7
|
+
import type { HandledRouter, Router } from './router';
|
8
|
+
import { RouterBuilder } from './router-builder';
|
9
|
+
import { type ChainedRouterImplementer } from './router-implementer';
|
10
|
+
import type { Context, MergeContext } from './types';
|
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
|
+
handler<UHandlerOutput = undefined>(handler: ProcedureHandler<TContext, TExtraContext, undefined, undefined, UHandlerOutput>): DecoratedProcedure<TContext, TExtraContext, undefined, undefined, UHandlerOutput>;
|
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>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, unknown>): DecoratedMiddleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, unknown>;
|
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
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { Builder } from './builder';
|
2
|
+
export * from './builder';
|
3
|
+
export * from '@orpc/shared/error';
|
4
|
+
export * from './middleware';
|
5
|
+
export * from './procedure';
|
6
|
+
export * from './procedure-caller';
|
7
|
+
export * from './procedure-builder';
|
8
|
+
export * from './procedure-implementer';
|
9
|
+
export * from './router';
|
10
|
+
export * from './router-caller';
|
11
|
+
export * from './router-implementer';
|
12
|
+
export * from './types';
|
13
|
+
export * from './utils';
|
14
|
+
export declare const os: Builder<Record<string, unknown> | undefined, undefined>;
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AAEvB,eAAO,MAAM,EAAE,yDAAgE,CAAA"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import type { Context, MergeContext, Meta, Promisable } from './types';
|
2
|
+
export interface Middleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput> {
|
3
|
+
(input: TInput, context: TContext, meta: Meta<TOutput>): Promisable<TExtraContext extends undefined ? void : {
|
4
|
+
context: TExtraContext;
|
5
|
+
}>;
|
6
|
+
}
|
7
|
+
export interface MapInputMiddleware<TInput, TMappedInput> {
|
8
|
+
(input: TInput): TMappedInput;
|
9
|
+
}
|
10
|
+
export interface DecoratedMiddleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput> extends Middleware<TContext, TExtraContext, TInput, TOutput> {
|
11
|
+
concat<UExtraContext extends Context = undefined, UInput = TInput>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UInput & TInput, TOutput>): DecoratedMiddleware<TContext, MergeContext<TExtraContext, UExtraContext>, TInput & UInput, TOutput>;
|
12
|
+
concat<UExtraContext extends Context = 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>;
|
13
|
+
mapInput<UInput = unknown>(map: MapInputMiddleware<UInput, TInput>): DecoratedMiddleware<TContext, TExtraContext, UInput, TOutput>;
|
14
|
+
}
|
15
|
+
export declare function decorateMiddleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput>(middleware: Middleware<TContext, TExtraContext, TInput, TOutput>): DecoratedMiddleware<TContext, TExtraContext, TInput, TOutput>;
|
16
|
+
//# sourceMappingURL=middleware.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGtE,MAAM,WAAW,UAAU,CACzB,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,MAAM,EACN,OAAO;IAEP,CACE,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAClB,UAAU,CACX,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CACpE,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB,CAAC,MAAM,EAAE,YAAY;IACtD,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB,CAClC,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,MAAM,EACN,OAAO,CACP,SAAQ,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;IAC5D,MAAM,CAAC,aAAa,SAAS,OAAO,GAAG,SAAS,EAAE,MAAM,GAAG,MAAM,EAC/D,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,MAAM,GAAG,MAAM,EACf,OAAO,CACR,GACA,mBAAmB,CACpB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,MAAM,GAAG,MAAM,EACf,OAAO,CACR,CAAA;IAED,MAAM,CACJ,aAAa,SAAS,OAAO,GAAG,SAAS,EACzC,MAAM,GAAG,MAAM,EACf,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,OAAO,CACR,EACD,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,GACjD,mBAAmB,CACpB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,MAAM,GAAG,MAAM,EACf,OAAO,CACR,CAAA;IAED,QAAQ,CAAC,MAAM,GAAG,OAAO,EACvB,GAAG,EAAE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;CACjE;AAID,wBAAgB,kBAAkB,CAChC,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,MAAM,EACN,OAAO,EAEP,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,GAC/D,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CA2C/D"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { type ContractProcedure, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
|
2
|
+
import type { MapInputMiddleware, Middleware } from './middleware';
|
3
|
+
import { type DecoratedProcedure, type ProcedureHandler } from './procedure';
|
4
|
+
import { ProcedureImplementer } from './procedure-implementer';
|
5
|
+
import type { Context, MergeContext } from './types';
|
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>, SchemaOutput<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, SchemaOutput<TOutputSchema>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
26
|
+
/**
|
27
|
+
* Convert to Procedure
|
28
|
+
*/
|
29
|
+
handler<UHandlerOutput extends SchemaOutput<TOutputSchema>>(handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>;
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=procedure-builder.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["../../src/procedure-builder.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import type { SchemaInput, SchemaOutput } from '@orpc/contract';
|
2
|
+
import type { Procedure } from './procedure';
|
3
|
+
import type { Meta, Promisable } from './types';
|
4
|
+
export interface CreateProcedureCallerOptions<TProcedure extends Procedure<any, any, any, any, any>, TValidate extends boolean> {
|
5
|
+
procedure: TProcedure;
|
6
|
+
/**
|
7
|
+
* The context used when calling the procedure.
|
8
|
+
*/
|
9
|
+
context: TProcedure extends Procedure<infer UContext, any, any, any, any> ? UContext : never;
|
10
|
+
/**
|
11
|
+
* Helpful hooks to do some logics on specific time.
|
12
|
+
*/
|
13
|
+
hooks?: (context: TProcedure extends Procedure<infer UContext, any, any, any, any> ? UContext : never, meta: Meta<unknown>) => Promisable<void>;
|
14
|
+
/**
|
15
|
+
* This is helpful for logging and analytics.
|
16
|
+
*/
|
17
|
+
path?: string[];
|
18
|
+
/**
|
19
|
+
* This flag helpful when you want bypass some logics not necessary to internal server calls.
|
20
|
+
*
|
21
|
+
* @default true
|
22
|
+
*/
|
23
|
+
internal?: boolean;
|
24
|
+
/**
|
25
|
+
* Indicate whether validate input and output.
|
26
|
+
*
|
27
|
+
* @default true
|
28
|
+
*/
|
29
|
+
validate?: TValidate;
|
30
|
+
}
|
31
|
+
export type ProcedureCaller<TProcedure extends Procedure<any, any, any, any, any>, TValidate extends boolean> = TProcedure extends Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UHandlerOutput> ? (input: TValidate extends true ? SchemaInput<UInputSchema> : SchemaOutput<UInputSchema>) => Promise<TValidate extends true ? SchemaOutput<UOutputSchema, UHandlerOutput> : SchemaInput<UOutputSchema, UHandlerOutput>> : never;
|
32
|
+
export declare function createProcedureCaller<TProcedure extends Procedure<any, any, any, any, any>, TValidate extends boolean = true>(options: CreateProcedureCallerOptions<TProcedure, TValidate>): ProcedureCaller<TProcedure, TValidate>;
|
33
|
+
//# sourceMappingURL=procedure-caller.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"procedure-caller.d.ts","sourceRoot":"","sources":["../../src/procedure-caller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAkB,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/D,MAAM,WAAW,4BAA4B,CAC3C,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,SAAS,OAAO;IAEzB,SAAS,EAAE,UAAU,CAAA;IAErB;;OAEG;IACH,OAAO,EAAE,UAAU,SAAS,SAAS,CAAC,MAAM,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACrE,QAAQ,GACR,KAAK,CAAA;IAET;;OAEG;IACH,KAAK,CAAC,EAAE,CACN,OAAO,EAAE,UAAU,SAAS,SAAS,CAAC,MAAM,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACrE,QAAQ,GACR,KAAK,EACT,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAChB,UAAU,CAAC,IAAI,CAAC,CAAA;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IAEf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,MAAM,eAAe,CACzB,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,SAAS,OAAO,IACvB,UAAU,SAAS,SAAS,CAC9B,GAAG,EACH,GAAG,EACH,MAAM,YAAY,EAClB,MAAM,aAAa,EACnB,MAAM,cAAc,CACrB,GACG,CACE,KAAK,EAAE,SAAS,SAAS,IAAI,GACzB,WAAW,CAAC,YAAY,CAAC,GACzB,YAAY,CAAC,YAAY,CAAC,KAC3B,OAAO,CACV,SAAS,SAAS,IAAI,GAClB,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,GAC3C,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAC/C,GACD,KAAK,CAAA;AAET,wBAAgB,qBAAqB,CACnC,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,SAAS,OAAO,GAAG,IAAI,EAEhC,OAAO,EAAE,4BAA4B,CAAC,UAAU,EAAE,SAAS,CAAC,GAC3D,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAwFxC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import type { ContractProcedure, SchemaOutput } from '@orpc/contract';
|
2
|
+
import type { Schema } from '@orpc/contract';
|
3
|
+
import { type MapInputMiddleware, type Middleware } from './middleware';
|
4
|
+
import { type DecoratedProcedure, type ProcedureHandler } from './procedure';
|
5
|
+
import type { Context, MergeContext } from './types';
|
6
|
+
export declare class ProcedureImplementer<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema> {
|
7
|
+
zz$pi: {
|
8
|
+
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
9
|
+
middlewares?: Middleware<any, any, any, any>[];
|
10
|
+
};
|
11
|
+
constructor(zz$pi: {
|
12
|
+
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
13
|
+
middlewares?: Middleware<any, any, any, any>[];
|
14
|
+
});
|
15
|
+
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaOutput<TOutputSchema>>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
16
|
+
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaOutput<TOutputSchema>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
|
17
|
+
handler<UHandlerOutput extends SchemaOutput<TOutputSchema>>(handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>;
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=procedure-implementer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"procedure-implementer.d.ts","sourceRoot":"","sources":["../../src/procedure-implementer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEhB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEpD,qBAAa,oBAAoB,CAC/B,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,YAAY,SAAS,MAAM,EAC3B,aAAa,SAAS,MAAM;IAGnB,KAAK,EAAE;QACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACxD,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;gBAHM,KAAK,EAAE;QACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACxD,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;IAGH,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EAEzB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,CAAC,YAAY,CAAC,EAC1B,YAAY,CAAC,aAAa,CAAC,CAC5B,GACA,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAED,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EACzB,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,YAAY,CAAC,aAAa,CAAC,CAC5B,EACD,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,GACrE,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAgBD,OAAO,CAAC,cAAc,SAAS,YAAY,CAAC,aAAa,CAAC,EACxD,OAAO,EAAE,gBAAgB,CACvB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,CACf,GACA,kBAAkB,CACnB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,CACf;CASF"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { type ContractProcedure, type HTTPPath, type SchemaInput, type SchemaOutput } from '@orpc/contract';
|
2
|
+
import type { RouteOptions, Schema } from '@orpc/contract';
|
3
|
+
import { type MapInputMiddleware, type Middleware } from './middleware';
|
4
|
+
import type { Context, MergeContext, Meta, Promisable } from './types';
|
5
|
+
export declare class Procedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, THandlerOutput extends SchemaOutput<TOutputSchema>> {
|
6
|
+
zz$p: {
|
7
|
+
middlewares?: Middleware<any, any, any, any>[];
|
8
|
+
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
9
|
+
handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
|
10
|
+
};
|
11
|
+
constructor(zz$p: {
|
12
|
+
middlewares?: Middleware<any, any, any, any>[];
|
13
|
+
contract: ContractProcedure<TInputSchema, TOutputSchema>;
|
14
|
+
handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
|
15
|
+
});
|
16
|
+
}
|
17
|
+
export type DecoratedProcedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, THandlerOutput extends SchemaOutput<TOutputSchema>> = Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput> & {
|
18
|
+
prefix(prefix: HTTPPath): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
|
19
|
+
route(opts: RouteOptions): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
|
20
|
+
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaOutput<TOutputSchema, THandlerOutput>>): DecoratedProcedure<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema, THandlerOutput>;
|
21
|
+
use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaOutput<TOutputSchema, THandlerOutput>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema, THandlerOutput>, UMappedInput>): DecoratedProcedure<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema, THandlerOutput>;
|
22
|
+
} & (undefined extends TContext ? (input: SchemaInput<TInputSchema> | FormData) => Promise<SchemaOutput<TOutputSchema, THandlerOutput>> : {});
|
23
|
+
export interface ProcedureHandler<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<unknown>): Promisable<SchemaInput<TOutputSchema, TOutput>>;
|
25
|
+
}
|
26
|
+
export declare function decorateProcedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, THandlerOutput extends SchemaOutput<TOutputSchema>>(procedure: Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
|
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
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/procedure.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { type HTTPPath } from '@orpc/contract';
|
2
|
+
import { type MapInputMiddleware, type Middleware } from './middleware';
|
3
|
+
import type { HandledRouter, Router } from './router';
|
4
|
+
import type { Context, MergeContext } from './types';
|
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
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"router-builder.d.ts","sourceRoot":"","sources":["../../src/router-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEhB,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEpD,qBAAa,aAAa,CACxB,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO;IAGpB,KAAK,EAAE;QACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;gBAJM,KAAK,EAAE;QACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;IAGH,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;IAOhE,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;IAS/D,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EAEzB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,OAAO,EACP,OAAO,CACR,GACA,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAEtE,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EACzB,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,OAAO,CACR,EACD,QAAQ,EAAE,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,GAClD,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAgBtE,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,EACrC,MAAM,EAAE,OAAO,GACd,aAAa,CAAC,OAAO,CAAC;CAqC1B"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { type Procedure } from './procedure';
|
2
|
+
import { type ProcedureCaller } from './procedure-caller';
|
3
|
+
import type { Router } from './router';
|
4
|
+
import type { Meta, Promisable } from './types';
|
5
|
+
export interface CreateRouterCallerOptions<TRouter extends Router<any>, TValidate extends boolean> {
|
6
|
+
router: TRouter;
|
7
|
+
/**
|
8
|
+
* The context used when calling the procedure.
|
9
|
+
*/
|
10
|
+
context: TRouter extends Router<infer UContext> ? UContext : never;
|
11
|
+
/**
|
12
|
+
* Helpful hooks to do some logics on specific time.
|
13
|
+
*/
|
14
|
+
hooks?: (context: TRouter extends Router<infer UContext> ? UContext : never, meta: Meta<unknown>) => Promisable<void>;
|
15
|
+
/**
|
16
|
+
* This is helpful for logging and analytics.
|
17
|
+
*/
|
18
|
+
basePath?: string[];
|
19
|
+
/**
|
20
|
+
* This flag helpful when you want bypass some logics not necessary to internal server calls.
|
21
|
+
*
|
22
|
+
* @default true
|
23
|
+
*/
|
24
|
+
internal?: boolean;
|
25
|
+
/**
|
26
|
+
* Indicate whether validate input and output.
|
27
|
+
*
|
28
|
+
* @default true
|
29
|
+
*/
|
30
|
+
validate?: TValidate;
|
31
|
+
}
|
32
|
+
export type RouterCaller<TRouter extends Router<any>, TValidate extends boolean> = {
|
33
|
+
[K in keyof TRouter]: TRouter[K] extends Procedure<any, any, any, any, any> ? ProcedureCaller<TRouter[K], TValidate> : TRouter[K] extends Router<any> ? RouterCaller<TRouter[K], TValidate> : never;
|
34
|
+
};
|
35
|
+
export declare function createRouterCaller<TRouter extends Router<any>, TValidate extends boolean = true>(options: CreateRouterCallerOptions<TRouter, TValidate>): RouterCaller<TRouter, TValidate>;
|
36
|
+
//# sourceMappingURL=router-caller.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"router-caller.d.ts","sourceRoot":"","sources":["../../src/router-caller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,oBAAoB,CAAA;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/C,MAAM,WAAW,yBAAyB,CACxC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC3B,SAAS,SAAS,OAAO;IAEzB,MAAM,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAA;IAElE;;OAEG;IACH,KAAK,CAAC,EAAE,CACN,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,EAClE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAChB,UAAU,CAAC,IAAI,CAAC,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC3B,SAAS,SAAS,OAAO,IACvB;KACD,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACvE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAC5B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACnC,KAAK;CACZ,CAAA;AAED,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC3B,SAAS,SAAS,OAAO,GAAG,IAAI,EAEhC,OAAO,EAAE,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,GACrD,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAgClC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { type ContractProcedure, type ContractRouter } from '@orpc/contract';
|
2
|
+
import type { Middleware } from './middleware';
|
3
|
+
import { ProcedureImplementer } from './procedure-implementer';
|
4
|
+
import type { RouterWithContract } from './router';
|
5
|
+
import type { Context } from './types';
|
6
|
+
export declare class RouterImplementer<TContext extends Context, TContract extends ContractRouter> {
|
7
|
+
zz$ri: {
|
8
|
+
contract: TContract;
|
9
|
+
};
|
10
|
+
constructor(zz$ri: {
|
11
|
+
contract: TContract;
|
12
|
+
});
|
13
|
+
router(router: RouterWithContract<TContext, TContract>): RouterWithContract<TContext, TContract>;
|
14
|
+
}
|
15
|
+
export type ChainedRouterImplementer<TContext extends Context, TContract extends ContractRouter, TExtraContext extends Context> = {
|
16
|
+
[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;
|
17
|
+
} & RouterImplementer<TContext, TContract>;
|
18
|
+
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>;
|
19
|
+
export declare function assertRouterImplementation(contract: ContractRouter, router: RouterWithContract<any, any>, path?: string[]): void;
|
20
|
+
//# sourceMappingURL=router-implementer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"router-implementer.d.ts","sourceRoot":"","sources":["../../src/router-implementer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,qBAAa,iBAAiB,CAC5B,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc;IAGvB,KAAK,EAAE;QACZ,QAAQ,EAAE,SAAS,CAAA;KACpB;gBAFM,KAAK,EAAE;QACZ,QAAQ,EAAE,SAAS,CAAA;KACpB;IAGH,MAAM,CACJ,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,GAC9C,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;CAK3C;AAED,MAAM,MAAM,wBAAwB,CAClC,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc,EAChC,aAAa,SAAS,OAAO,IAC3B;KACD,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAC5D,MAAM,YAAY,EAClB,MAAM,aAAa,CACpB,GACG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,GAC1E,SAAS,CAAC,CAAC,CAAC,SAAS,cAAc,GACjC,wBAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,GAC/D,KAAK;CACZ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAE1C,wBAAgB,sBAAsB,CACpC,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc,EAChC,aAAa,SAAS,OAAO,EAE7B,QAAQ,EAAE,SAAS,EACnB,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAC7C,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAmB9D;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,IAAI,GAAE,MAAM,EAAO,GAClB,IAAI,CAgCN"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { type ContractProcedure, type ContractRouter } from '@orpc/contract';
|
2
|
+
import { type DecoratedProcedure, type Procedure } from './procedure';
|
3
|
+
import type { Context } from './types';
|
4
|
+
export interface Router<TContext extends Context> {
|
5
|
+
[k: string]: Procedure<TContext, any, any, any, any> | Router<TContext>;
|
6
|
+
}
|
7
|
+
export type HandledRouter<TRouter extends Router<any>> = {
|
8
|
+
[K in keyof TRouter]: TRouter[K] extends Procedure<infer UContext, infer UExtraContext, infer UInputSchema, infer UOutputSchema, infer UHandlerOutput> ? DecoratedProcedure<UContext, UExtraContext, UInputSchema, UOutputSchema, UHandlerOutput> : TRouter[K] extends Router<any> ? HandledRouter<TRouter[K]> : never;
|
9
|
+
};
|
10
|
+
export type RouterWithContract<TContext extends Context, TContract extends ContractRouter> = {
|
11
|
+
[K in keyof TContract]: TContract[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? Procedure<TContext, any, UInputSchema, UOutputSchema, any> : TContract[K] extends ContractRouter ? RouterWithContract<TContext, TContract[K]> : never;
|
12
|
+
};
|
13
|
+
export declare function toContractRouter(router: ContractRouter | Router<any>): ContractRouter;
|
14
|
+
//# sourceMappingURL=router.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,MAAM,CAAC,QAAQ,SAAS,OAAO;IAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;CACxE;AAED,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI;KACtD,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAChD,MAAM,QAAQ,EACd,MAAM,aAAa,EACnB,MAAM,YAAY,EAClB,MAAM,aAAa,EACnB,MAAM,cAAc,CACrB,GACG,kBAAkB,CAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,CACf,GACD,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAC5B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACzB,KAAK;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc,IAC9B;KACD,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAC5D,MAAM,YAAY,EAClB,MAAM,aAAa,CACpB,GACG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,CAAC,GAC1D,SAAS,CAAC,CAAC,CAAC,SAAS,cAAc,GACjC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAC1C,KAAK;CACZ,CAAA;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GACnC,cAAc,CAgBhB"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type { WELL_DEFINED_PROCEDURE } from './procedure';
|
2
|
+
export type Context = Record<string, unknown> | undefined;
|
3
|
+
export type MergeContext<TA extends Context, TB extends Context> = TA extends undefined ? TB : TB extends undefined ? TA : TA & TB;
|
4
|
+
export interface Meta<T> extends Hooks<T> {
|
5
|
+
path: string[];
|
6
|
+
internal: boolean;
|
7
|
+
procedure: WELL_DEFINED_PROCEDURE;
|
8
|
+
}
|
9
|
+
export type Promisable<T> = T | Promise<T>;
|
10
|
+
export interface UnsubscribeFn {
|
11
|
+
(): void;
|
12
|
+
}
|
13
|
+
export interface Hooks<T> {
|
14
|
+
onSuccess: (fn: (output: T) => Promisable<void>) => UnsubscribeFn;
|
15
|
+
onError: (fn: (error: unknown) => Promisable<void>) => UnsubscribeFn;
|
16
|
+
onFinish: (fn: (output: T | undefined, error: unknown | undefined) => Promisable<void>) => UnsubscribeFn;
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEzD,MAAM,MAAM,YAAY,CACtB,EAAE,SAAS,OAAO,EAClB,EAAE,SAAS,OAAO,IAChB,EAAE,SAAS,SAAS,GAAG,EAAE,GAAG,EAAE,SAAS,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAEnE,MAAM,WAAW,IAAI,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,sBAAsB,CAAA;CAClC;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,CAAA;CACT;AAED,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;IACjE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;IACpE,QAAQ,EAAE,CACR,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,KACxE,aAAa,CAAA;CACnB"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type { Context, Hooks, MergeContext, Promisable } from './types';
|
2
|
+
export declare function mergeContext<A extends Context, B extends Context>(a: A, b: B): MergeContext<A, B>;
|
3
|
+
export declare function hook<T>(fn: (hooks: Hooks<T>) => Promisable<T>): Promise<T>;
|
4
|
+
//# sourceMappingURL=utils.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEvE,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAC/D,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAQpB;AAED,wBAAsB,IAAI,CAAC,CAAC,EAC1B,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,CAAC,CAAC,CA6EZ"}
|