quick-erd
Version:
quick and easy text-based ERD + code generator for migration, query, typescript types and orm entity
62 lines (61 loc) • 2.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ast_1 = require("../core/ast");
const file_1 = require("../utils/file");
const auto_migrate_1 = require("../db/auto-migrate");
const knex_1 = require("../db/knex");
const env_1 = require("../db/env");
/* eslint-disable no-console */
let dbFile_or_client = env_1.env.DB_CLIENT || '';
let detect_rename = false;
for (let i = 2; i < process.argv.length; i++) {
const arg = process.argv[i];
if (arg === '--rename' || arg === '-r') {
detect_rename = true;
continue;
}
dbFile_or_client = arg;
}
if (!dbFile_or_client) {
console.error('Error: missing argument');
console.error('Either provide sqlite filename in argument');
console.error('Or provide database client in argument or DB_CLIENT environment variable');
process.exit(1);
}
async function main() {
const erd = await new Promise(resolve => (0, file_1.readErdFromStdin)(resolve));
const parseResult = (0, ast_1.parse)(erd);
const srcDir = (0, auto_migrate_1.detectSrcDir)();
let db_client;
let dbFile;
switch (dbFile_or_client) {
case 'mysql':
case 'mssql':
case 'pg':
case 'postgresql':
db_client = dbFile_or_client;
(0, auto_migrate_1.setupEnvFile)({ srcDir, db_client });
break;
default: {
db_client = 'better-sqlite3';
dbFile = dbFile_or_client;
(0, auto_migrate_1.setupSqlite)({ srcDir, dbFile });
}
}
(0, auto_migrate_1.setupNpmScripts)({ srcDir, db_client, dbFile });
(0, auto_migrate_1.setupTypescript)();
(0, auto_migrate_1.setupPnpm)();
(0, auto_migrate_1.setupGitIgnore)({ dbFile });
(0, auto_migrate_1.setupPrettierIgnore)({ srcDir, db_client });
(0, auto_migrate_1.setupKnexFile)({ srcDir, db_client, ssl: (env_1.env.DB_SSL || 'lax') });
(0, auto_migrate_1.setupKnexTsFile)({ srcDir });
const knex = dbFile ? (0, knex_1.loadSqliteKnex)(dbFile) : (0, knex_1.loadKnex)(db_client);
await (0, auto_migrate_1.setupKnexMigration)({
knex,
parseResult,
db_client,
detect_rename,
});
}
main();