UNPKG

midway-dto-prisma

Version:

根据 prisma 模型自动生成MidwayJS DTO 类和 Swagger 参数信息

42 lines 2.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const generator_helper_1 = require("@prisma/generator-helper"); const sdk_1 = require("@prisma/sdk"); const path_1 = __importDefault(require("path")); const constants_1 = require("./constants"); const genEnum_1 = require("./helpers/genEnum"); const genDto_1 = require("./helpers/genDto"); const writeFileSafely_1 = require("./utils/writeFileSafely"); const { version } = require('../package.json'); (0, generator_helper_1.generatorHandler)({ onManifest() { sdk_1.logger.info(`${constants_1.GENERATOR_NAME}:Registered`); return { version, defaultOutput: '../generated', prettyName: constants_1.GENERATOR_NAME, }; }, onGenerate: async (options) => { var _a, _b; const ignoreFields = Array.isArray(options.generator.config.ignoreFields) ? options.generator.config.ignoreFields : []; const enableSwagger = options.generator.config.enableSwagger === 'true'; const customImports = Array.isArray(options.generator.config.customImports) ? options.generator.config.customImports : []; for (const enumInfo of options.dmmf.datamodel.enums) { const tsEnum = (0, genEnum_1.genEnum)(enumInfo); const enumWriteLocation = path_1.default.join((_a = options.generator.output) === null || _a === void 0 ? void 0 : _a.value, `${enumInfo.name}.ts`); await (0, writeFileSafely_1.writeFileSafely)(enumWriteLocation, tsEnum); } const allDtosContent = (0, genDto_1.genAllDtos)(options.dmmf.datamodel.models, ignoreFields, enableSwagger, customImports); const dtosWriteLocation = path_1.default.join((_b = options.generator.output) === null || _b === void 0 ? void 0 : _b.value, 'index.ts'); await (0, writeFileSafely_1.writeFileSafely)(dtosWriteLocation, allDtosContent); }, }); //# sourceMappingURL=generator.js.map