zod-server-actions
Version:
Simple utility library to create server actions in Next.js
41 lines (40 loc) • 1.09 kB
JavaScript
import { createAction } from "./handler";
import { Query } from "./query";
export class ActionHandler {
constructor(validator, config) {
this.validator = validator;
this.config = config;
}
input(schema) {
this.validator.setInputSchema(schema);
return new ActionHandler(this.validator, this.config);
}
output(schema) {
this.validator.setOutputSchema(schema);
return new ActionHandler(this.validator, this.config);
}
retry(config) {
if (this.config) {
this.config.setConfig({ ...this.config, retries: config });
}
return new ActionHandler(this.validator, this.config);
}
handler(cb) {
const config = this.config;
const validator = this.validator;
return createAction({
cb,
config,
validator,
});
}
query(cb) {
const config = this.config;
const validator = this.validator;
return Query.create({
cb,
config,
validator,
});
}
}