UNPKG

quick-erd

Version:

quick and easy text-based ERD + code generator for migration, query, typescript types and orm entity

67 lines (65 loc) 2.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadSqliteKnex = loadSqliteKnex; exports.loadKnex = loadKnex; const knex_1 = __importDefault(require("knex")); const env_1 = require("./env"); function loadSqliteKnex(dbFile) { const knex = (0, knex_1.default)({ client: 'better-sqlite3', useNullAsDefault: true, connection: { filename: dbFile, }, }); return knex; } function loadKnex(client = env_1.env.DB_CLIENT || 'pg') { const database = env_1.env.DB_NAME || env_1.env.POSTGRES_DB; const user = env_1.env.DB_USERNAME || env_1.env.DB_USER || env_1.env.POSTGRES_USER; const password = env_1.env.DB_PASSWORD || env_1.env.DB_PASS || env_1.env.POSTGRES_PASSWORD; const ssl = (env_1.env.DB_SSL || 'lax'); if (!database && !user) { console.error('Missing database credential in env.'); // eslint-disable-next-line no-console console.log(` Template for .env file: DB_CLIENT=better-sqlite3|pg|mysql DB_HOST=(optional) DB_PORT=(optional) DB_NAME=(or POSTGRES_DB) DB_USERNAME=(or DB_USER or POSTGRES_USER) DB_PASSWORD=(or DB_PASS or POSTGRES_PASSWORD) DB_SSL=(optional, 'required' or 'lax' or 'false', default is 'lax') `); process.exit(1); } const knex = (0, knex_1.default)({ client, connection: { database, host: env_1.env.DB_HOST, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion port: +env_1.env.DB_PORT || undefined, user, password, multipleStatements: true, ssl: ssl == 'required' ? { rejectUnauthorized: true } : ssl == 'lax' ? { rejectUnauthorized: false } : false, }, pool: { min: 2, max: 10, }, migrations: { tableName: 'knex_migrations', }, }); return knex; }