Server-Act
A simple React server action builder that provides input validation with zod.
Installation
npm install server-act zod
yarn add server-act zod
pnpm add server-act zod
Usage
"use server";
import { serverAct } from "server-act";
export const sayHelloAction = serverAct
.input(
z.object({
name: z.string(),
})
)
.action(async ({ input }) => {
return `Hello, ${input.name}`;
});
"use client";
import { sayHelloAction } from "./action";
export const ClientComponent = () => {
const onClick = () => {
const message = await sayHelloAction({ name: "John" });
console.log(message);
};
return (
<div>
<button onClick={onClick}>Trigger action</button>
</div>
);
};
With Middleware
"use server";
import { serverAct } from "server-act";
export const sayHelloAction = serverAct
.middleware(() => {
const userId = "...";
return { userId };
})
.input(
z.object({
name: z.string(),
})
)
.action(async ({ ctx, input }) => {
console.log("User ID", ctx.userId);
return `Hello, ${input.name}`;
});