prisma-dbml-generator
Version:
Prisma DBML Generator
48 lines (47 loc) • 1.75 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getProjectOptions = exports.generateProject = void 0;
const fs_1 = require("fs");
const { readFile } = fs_1.promises;
function generateProject({ name, databaseType, note, isMd = false, }) {
const projectNote = isMd
? `'''\n` +
` ${note
.replace(/\n/g, '\n ')
.replace(/(\n\s+\n)/g, '\n\n')
.replace(/\s+$/g, '')}\n '''`
: `'${note}'`;
const project = [
`Project ${name} {\n` +
` database_type: '${databaseType}'\n` +
` Note: ${projectNote}\n}`,
];
return name ? project : [];
}
exports.generateProject = generateProject;
async function getProjectOptions({ projectName, projectDatabaseType, projectNote, projectNotePath, }) {
if (typeof projectName === 'string') {
let projectNoteMd = '';
if (projectNotePath) {
const fullPath = `${process.cwd()}/${projectNotePath}`;
try {
projectNoteMd = await readFile(fullPath, 'utf-8');
}
catch (e) {
console.log(`❌ Error: project note markdown file not found: ${fullPath}`);
}
}
return {
name: projectName && `"${projectName}"`,
databaseType: typeof projectDatabaseType === 'string' ? projectDatabaseType : '',
note: projectNoteMd
? projectNoteMd
: typeof projectNote === 'string'
? projectNote
: '', // noteMd takes precedence
isMd: projectNoteMd !== '',
};
}
return undefined;
}
exports.getProjectOptions = getProjectOptions;
;