@weverson_na/prisma-generator-nestjs-dto
Version:
Advanced Prisma Generator with Smart Merge v2: Creates DTO and Entity classes with AST-based preservation, intelligent import management, and modular architecture for NestJS
57 lines (56 loc) • 2.81 kB
TypeScript
import { ImportStatementParams, ParsedField } from './types';
export interface TemplateHelpersOptions {
connectDtoPrefix: string;
createDtoPrefix: string;
updateDtoPrefix: string;
dtoSuffix: string;
entityPrefix: string;
entitySuffix: string;
transformClassNameCase?: (input: string) => string;
transformFileNameCase?: (input: string) => string;
}
export declare class TemplateHelpers {
private readonly connectDtoPrefix;
private readonly createDtoPrefix;
private readonly updateDtoPrefix;
private readonly dtoSuffix;
private readonly entityPrefix;
private readonly entitySuffix;
readonly transformClassNameCase: (input: string) => string;
readonly transformFileNameCase: (input: string) => string;
private readonly decoratorStrategy;
static readonly PrismaScalarToTypeScript: Record<string, string>;
static readonly knownPrismaScalarTypes: string[];
constructor(options: TemplateHelpersOptions);
static scalarToTS(scalar: string, useInputTypes?: boolean): string;
static echo(input: string): string;
static when(condition: unknown, thenTpl: string, elseTpl?: string): string;
static unless(condition: unknown, thenTpl: string, elseTpl?: string): string;
static each<T>(arr: T[], fn: (item: T) => string, joinWith?: string): string;
static importStatement(input: ImportStatementParams): string;
static importStatements(items: ImportStatementParams[]): string;
private className;
private fileName;
entityName(name: string): string;
connectDtoName(name: string): string;
createDtoName(name: string): string;
updateDtoName(name: string): string;
connectDtoFilename(name: string, withExt?: boolean): string;
createDtoFilename(name: string, withExt?: boolean): string;
updateDtoFilename(name: string, withExt?: boolean): string;
entityFilename(name: string, withExt?: boolean): string;
fieldType(field: ParsedField, toInputType?: boolean): string;
static hasSomeApiPropertyDoc(fields: ParsedField[]): boolean;
static hasApiPropertyDoc(field: ParsedField): boolean;
private addDecorator;
private buildEntityDecorator;
private buildDtoDecorator;
private buildEnumDecorator;
private buildFieldDecorator;
fieldToDtoProp(field: ParsedField, useInputTypes?: boolean, forceOptional?: boolean, addExposePropertyDecorator?: boolean): string;
fieldsToDtoProps(fields: ParsedField[], useInputTypes?: boolean, forceOptional?: boolean, addExposePropertyDecorator?: boolean): string;
fieldToEntityProp(field: ParsedField): string;
fieldsToEntityProps(fields: ParsedField[]): string;
apiExtraModels(names: string[]): string;
get config(): Omit<TemplateHelpersOptions, 'transformClassNameCase' | 'transformFileNameCase'>;
}