prisma-zod-generator
Version:
Prisma 2+ generator to emit Zod schemas from your Prisma schema
98 lines (97 loc) • 2.49 kB
TypeScript
/**
* PZG Pro - Server Actions Generator (DMMF-based)
*
* Generate typed Next.js Server Actions and React hooks from DMMF data
*/
import { ProFeatureBase } from '../../core/ProFeatureBase';
import { ProGeneratorContext } from '../../core/ProGeneratorContext';
export interface ServerActionsConfig {
outputPath?: string;
enableOptimisticUpdates?: boolean;
enableCacheRevalidation?: boolean;
enableErrorBoundaries?: boolean;
actions?: string[];
}
export declare class ServerActionsGenerator extends ProFeatureBase {
private config;
constructor(context: ProGeneratorContext, config?: ServerActionsConfig);
protected getFeatureName(): string;
protected generateFeature(): Promise<void>;
/**
* Generate server actions for a model
*/
private generateModelActions;
/**
* Generate create action for a model
*/
private generateCreateAction;
/**
* Generate update action for a model
*/
private generateUpdateAction;
/**
* Generate delete action for a model
*/
private generateDeleteAction;
/**
* Generate findMany action for a model
*/
private generateFindManyAction;
/**
* Generate findUnique action for a model
*/
private generateFindUniqueAction;
/**
* Find related models for imports
*/
private findRelatedModels;
/**
* Generate React hooks for a model
*/
private generateModelHooks;
/**
* Generate create hook for a model
*/
private generateCreateHook;
/**
* Generate update hook for a model
*/
private generateUpdateHook;
/**
* Generate delete hook for a model
*/
private generateDeleteHook;
/**
* Generate findMany hook for a model
*/
private generateFindManyHook;
/**
* Generate findUnique hook for a model
*/
private generateFindUniqueHook;
/**
* Generate TypeScript types for a model
*/
private generateModelTypes;
/**
* Generate prisma client file
*/
private generatePrismaClient;
/**
* Generate shared utilities
*/
private generateSharedUtils;
/**
* Generate index files
*/
private generateIndexFiles;
/**
* Helper methods
*/
private getCreateFields;
private getActionImports;
private generateFormDataValidation;
private generateDataValidation;
private generateRevalidation;
private generateUsageREADME;
}