UNPKG

prisma-dbml-generator

Version:
34 lines (33 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generate = exports.defaultDBMLFileName = void 0; const internals_1 = require("@prisma/internals"); const fs_1 = require("fs"); const path_1 = require("path"); const dbml_1 = require("../generator/dbml"); const project_1 = require("../generator/project"); const { mkdir, writeFile } = fs_1.promises; exports.defaultDBMLFileName = 'schema.dbml'; async function generate(options) { const { output, config } = options.generator; const outputDir = (0, internals_1.parseEnvValue)(output); const dbmlFileName = typeof config.outputName === 'string' ? config.outputName : exports.defaultDBMLFileName; const allowManyToMany = config.manyToMany === 'false' ? false : true; const mapToDbSchema = config.mapToDbSchema === 'false' ? false : true; const includeRelationFields = config.includeRelationFields === 'false' ? false : true; const projectOptions = await (0, project_1.getProjectOptions)(config); try { await mkdir(outputDir, { recursive: true }); // for debugging dmmf schema // await writeFile('./test.json', JSON.stringify(options.dmmf.datamodel)); const dbmlSchema = (0, dbml_1.generateDBMLSchema)(options.dmmf, allowManyToMany, mapToDbSchema, includeRelationFields, projectOptions); await writeFile((0, path_1.join)(outputDir, dbmlFileName), dbmlSchema); } catch (e) { console.error('Error: unable to write files for Prisma DBML Generator'); throw e; } } exports.generate = generate;