restate-for-dummies
Version:
Type-safe Restate SDK wrapper with simplified API
19 lines • 1.08 kB
TypeScript
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