Restate is a system for easily building resilient applications using distributed durable async/await.
This package contains a zod integration, allowing to define input/output models of your handlers.
import * as restate from "@restatedev/restate-sdk";
import { serde } from "@restatedev/restate-sdk-zod";
import { z } from "zod";
const Greeting = z.object({
name: z.string(),
});
const greeter = restate.service({
name: "greeter",
handlers: {
greet: restate.handlers.handler(
{
input: serde.zod(Greeting),
output: serde.zod(z.string()),
},
async (ctx, greeting) => {
return `Hello ${greeting.name}!`;
}
),
},
});
export type Greeter = typeof greeter;
restate.endpoint().bind(greeter).listen();
For the SDK main package, checkout https://www.npmjs.com/package/@restatedev/restate-sdk.
To use this library, add the dependency to your project:
npm install --save-dev @restatedev/restate-sdk-zod
This library follows Semantic Versioning.