prisma-dbml-generator
Version:
Prisma DBML Generator
34 lines (33 loc) • 1.58 kB
JavaScript
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;
;