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
JavaScript
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;
}
;