ffc-pay-etl-framework
Version:
A framework for creating ETL pipelines in node
56 lines (55 loc) • 2.06 kB
JavaScript
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
};