UNPKG

ffc-pay-etl-framework

Version:

A framework for creating ETL pipelines in node

56 lines (55 loc) 2.06 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; const DEFAULT_PORT = 5432; const { Sequelize } = require('sequelize'); const debug = require('debug')('connection'); /** * * @param {Object} options * @param {Object} options.connectionname * @param {Object} options.username * @param {Object} options.password * @param {Object} options.database * @param {Object} options.host * @param {Object} options.port * @returns Connection */ function PostgresDatabaseConnection(options) { return __awaiter(this, void 0, void 0, function* () { const connectionname = options.connectionname; const username = options.username; const password = options.password; const database = options.database; const host = options.host; const port = options.port || DEFAULT_PORT; const sequelize = new Sequelize(database, username, password, { host: host, port: port, dialect: 'postgres', logging: false }); try { yield sequelize.authenticate(); debug('sequelize.authenticate succeeded'); return { name: connectionname, db: sequelize }; } catch (e) { debug('sequelize.authenticate failed'); debug(e); throw e; } }); } module.exports = { PostgresDatabaseConnection };