UNPKG

@usirin/spellcaster

Version:

Remote execution of spells defined in spellbooks

96 lines 3.37 kB
import type { StandardSchemaV1 } from "@standard-schema/spec"; import { type Spellbook } from "@usirin/spellbook"; interface RequestSpec<TName extends keyof Spellbook["spells"] = keyof Spellbook["spells"]> { name: TName; parameters: StandardSchemaV1.InferInput<Spellbook["spells"][TName]["parameters"]>; } export declare const createRequest: (args_0: RequestSpec<string>) => import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }; export type Request = ReturnType<typeof createRequest>; interface ResponseSpec<TName extends keyof Spellbook["spells"] = keyof Spellbook["spells"]> { request: Request; result?: ReturnType<Spellbook["spells"][TName]["execute"]>; error?: { message: string; code?: string; details?: unknown; }; } export declare const createResponse: (args_0: ResponseSpec<string>) => import("@usirin/forge").Entity<"resp"> & { request: import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }; result: Promise<any> | undefined; error: { message: string; code?: string; details?: unknown; } | undefined; }; export type Response = ReturnType<typeof createResponse>; export declare function createSpellbookStream(spellbook: Spellbook): TransformStream<import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }, import("@usirin/forge").Entity<"resp"> & { request: import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }; result: Promise<any> | undefined; error: { message: string; code?: string; details?: unknown; } | undefined; }>; interface ServerTransportSpec { incoming: ReadableStream<Request>; outgoing: WritableStream<Response>; } export declare const createServerTransport: (args_0: ServerTransportSpec) => import("@usirin/forge").Entity<"xports"> & { incoming: ReadableStream<import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }>; outgoing: WritableStream<import("@usirin/forge").Entity<"resp"> & { request: import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }; result: Promise<any> | undefined; error: { message: string; code?: string; details?: unknown; } | undefined; }>; }; export type ServerTransport = ReturnType<typeof createServerTransport>; interface ClientTransportSpec { incoming: ReadableStream<Response>; outgoing: WritableStream<Request>; } export declare const createClientTransport: (args_0: ClientTransportSpec) => import("@usirin/forge").Entity<"xportc"> & { incoming: ReadableStream<import("@usirin/forge").Entity<"resp"> & { request: import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }; result: Promise<any> | undefined; error: { message: string; code?: string; details?: unknown; } | undefined; }>; outgoing: WritableStream<import("@usirin/forge").Entity<"req"> & { name: string; parameters: any; }>; }; export type ClientTransport = ReturnType<typeof createClientTransport>; export {}; //# sourceMappingURL=transport.d.ts.map