blob: 9949383356dfe2bac35e3ca8193f8845214dafad (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import { Context, object, ObjectContext } from "@restatedev/restate-sdk";
export const idProvider = object({
name: "IdProvider",
handlers: {
get: async (ctx: ObjectContext<{ nextId: number }>): Promise<number> => {
const state = (await ctx.get("nextId")) ?? 0;
ctx.set("nextId", state + 1);
return state;
},
},
options: {
ingressPrivate: true,
journalRetention: 0,
},
});
export async function genId(ctx: Context) {
return ctx
.objectClient<typeof idProvider>({ name: "IdProvider" }, "IdProvider")
.get();
}
|