midway-dto-prisma
Version:
根据 prisma 模型自动生成MidwayJS DTO 类和 Swagger 参数信息
42 lines • 2.14 kB
JavaScript
;
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