UNPKG

restate-for-dummies

Version:

Type-safe Restate SDK wrapper with simplified API

19 lines 1.08 kB
import type { VirtualObjectDefinition } from "@restatedev/restate-sdk"; import * as restate from "@restatedev/restate-sdk"; import type { BaseClientMethods, TransformObjectHandler, TypedClear, TypedGet, TypedRun, TypedSet } from "./common-types"; export type ObjectHandlerContext<TState> = { clearState: TypedClear<TState>; ctx: restate.ObjectContext; getState: TypedGet<TState>; runStep: TypedRun; setState: TypedSet<TState>; } & BaseClientMethods; export type HandlerContext<TState> = ObjectHandlerContext<TState>; type TransformHandlers<TState, THandlers> = { [K in keyof THandlers]: TransformObjectHandler<ObjectHandlerContext<TState>, THandlers[K]>; }; export declare function typedObject<TState>(name: string, SerdeClass: new <T>() => restate.Serde<T>): <THandlers extends { [key: string]: (context: ObjectHandlerContext<TState>, ...args: any[]) => Promise<any>; }>(handlers: THandlers) => VirtualObjectDefinition<string, TransformHandlers<TState, THandlers>>; export { typedObject as createRestateObject }; //# sourceMappingURL=typed-object.d.ts.map