UNPKG

@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

48 lines (47 loc) 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeConnectDtoParams = exports.ConnectDtoParamsComputer = void 0; const base_model_params_computer_1 = require("./base-model-params-computer"); const connect_dto_field_config_1 = require("./configs/connect-dto-field-config"); const helpers_1 = require("../helpers/helpers"); const field_classifiers_1 = require("../field-classifiers"); class ConnectDtoParamsComputer extends base_model_params_computer_1.BaseModelParamsComputer { constructor(customDecoratorConfigsPath, templateHelpers) { super(templateHelpers, customDecoratorConfigsPath); this.customDecoratorConfigsPath = customDecoratorConfigsPath; this.fieldConfig = new connect_dto_field_config_1.ConnectDtoFieldConfig(templateHelpers); } getFieldConfig() { return this.fieldConfig; } computeParams(model, _allModels, addExposePropertyDecorator) { const idFields = model.fields.filter((field) => (0, field_classifiers_1.isId)(field)); const isUniqueFields = model.fields.filter((field) => (0, field_classifiers_1.isUnique)(field)); const uniqueFields = helpers_1.Helpers.uniq([...idFields, ...isUniqueFields]); const overrides = uniqueFields.length > 1 ? { isRequired: false } : {}; const fields = uniqueFields.map((field) => helpers_1.Helpers.mapDMMFToParsedField(field, overrides)); let imports = []; if (this.templateHelpers) { const fieldResult = this.processModelFields(model, [], addExposePropertyDecorator); imports = this.finalizeImports(fieldResult.imports, fields, false, fieldResult.hasEnum); } else { const importPrismaClient = helpers_1.Helpers.makeImportsFromPrismaClient(fields); if (importPrismaClient) { imports.push(importPrismaClient); } imports = helpers_1.Helpers.zipImportStatementParams(imports); } return { model, fields, imports, }; } } exports.ConnectDtoParamsComputer = ConnectDtoParamsComputer; const computeConnectDtoParams = ({ model, templateHelpers, addExposePropertyDecorator, customDecoratorConfigsPath, }) => { const computer = new ConnectDtoParamsComputer(customDecoratorConfigsPath, templateHelpers); return computer.computeParams(model, [], addExposePropertyDecorator); }; exports.computeConnectDtoParams = computeConnectDtoParams;