zenstack
Version:
FullStack enhancement for Prisma ORM: seamless integration from database to UI
53 lines (52 loc) • 1.8 kB
TypeScript
import { InvocationExpr, Model } from '@zenstackhq/language/ast';
import { PluginOptions } from '@zenstackhq/sdk';
import { FunctionCall as PrismaFunctionCall } from './prisma-builder';
/**
* Generates Prisma schema file
*/
export declare class PrismaSchemaGenerator {
private readonly zmodel;
private zModelGenerator;
private readonly PRELUDE;
private mode;
private customAttributesAsComments;
private shortNameMap;
constructor(zmodel: Model);
generate(options: PluginOptions): Promise<{
warnings: string[];
shortNameMap: Map<string, string>;
}>;
private generateDataSource;
private configExprToText;
private configArrayToText;
private configInvocationArgToText;
private literalToText;
private exprToText;
private generateGenerator;
private generateModel;
private generateDelegateRelationForBase;
private generateDelegateRelationForConcrete;
private expandPolymorphicRelations;
private replicateForeignKey;
private replicateForeignKeyModelLevelUnique;
private truncate;
private ensureRelationsInheritedFromDelegate;
private findUpMatchingFieldFromDelegate;
private getOppositeRelationField;
private getRelationName;
private get supportNamedConstraints();
private isPrismaAttribute;
private getUnsupportedFieldType;
private generateModelField;
private setDummyDefault;
private ensureSupportingTypeDefFields;
private isInheritedFromDelegate;
private makeFieldAttribute;
private makeAttributeArg;
private makeAttributeArgValue;
makeFunctionCall(node: InvocationExpr): PrismaFunctionCall;
private generateContainerAttribute;
private generateEnum;
private generateEnumField;
private getCustomAttributesAsComments;
}