UNPKG

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
#!/usr/bin/env node "use strict"; 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();