UNPKG

@chord-ts/rpc

Version:

💎 Cutting edge transport framework vanishing borders between frontend and backend

36 lines • 1.68 kB
import 'reflect-metadata'; import type { ComposerConfig, MethodDescription, PartialMethodDescription, PropertyDescription, Target, Schema, PropKey, Middleware, MethodConfig, Composed, Context } from './types'; import type * as JSONRPC from '../specs'; export declare class Composer<T extends { [k: string]: object; }> { private config; private models; private middlewares; private adapter; constructor(models: T, config?: ComposerConfig); static readonly methods: Map<string, MethodDescription>; static readonly props: Map<string, PropertyDescription[]>; static init<T extends { [k: string]: object; }, Ctx extends Context>(models: T, config?: ComposerConfig): Composed<T>; static upsertMethod(desc: PartialMethodDescription): void; static addProp({ key, target }: { key: PropKey; target: object; }): void; get clientType(): T; use<Ev, Ctx, Ext>(middleware: Middleware<Ev, Ctx, Ext>): void; createScoped(ctx: unknown): T; get stringified(): T; getSchema(route?: string): Schema; private initCtx; exec<T extends object>(event: T): Promise<JSONRPC.SomeResponse<any> | JSONRPC.BatchResponse<any>>; private runMiddlewares; private execProcedure; } export declare function toRPC<T extends object>(instance: T): T; export declare function rpc(config?: MethodConfig): (target: Target, key: PropKey, descriptor: PropertyDescriptor) => void; export declare function depends(): (target: object, key: PropKey) => void; export declare function val(validator: unknown): (target: Object, key: string | symbol, parameterIndex: number) => void; //# sourceMappingURL=index.d.ts.map