"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createClient = createClient; const parser = require('./PostgresConfigParser'); function createClient(uri, databaseOptions) { let dbOptions = {}; databaseOptions = databaseOptions || {}; if (uri) { dbOptions = parser.getDatabaseOptionsFromURI(uri); } for (const key in databaseOptions) { dbOptions[key] = databaseOptions[key]; } const initOptions = dbOptions.initOptions || {}; initOptions.noWarnings = process && process.env.TESTING; const pgp = require('pg-promise')(initOptions); const client = pgp(dbOptions); if (process.env.PARSE_SERVER_LOG_LEVEL === 'debug') { const monitor = require('pg-monitor'); if (monitor.isAttached()) { monitor.detach(); } monitor.attach(initOptions); } if (dbOptions.pgOptions) { for (const key in dbOptions.pgOptions) { pgp.pg.defaults[key] = dbOptions.pgOptions[key]; } } return { client, pgp }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZXIiLCJyZXF1aXJlIiwiY3JlYXRlQ2xpZW50IiwidXJpIiwiZGF0YWJhc2VPcHRpb25zIiwiZGJPcHRpb25zIiwiZ2V0RGF0YWJhc2VPcHRpb25zRnJvbVVSSSIsImtleSIsImluaXRPcHRpb25zIiwibm9XYXJuaW5ncyIsInByb2Nlc3MiLCJlbnYiLCJURVNUSU5HIiwicGdwIiwiY2xpZW50IiwiUEFSU0VfU0VSVkVSX0xPR19MRVZFTCIsIm1vbml0b3IiLCJpc0F0dGFjaGVkIiwiZGV0YWNoIiwiYXR0YWNoIiwicGdPcHRpb25zIiwicGciLCJkZWZhdWx0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzQ2xpZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhcnNlciA9IHJlcXVpcmUoJy4vUG9zdGdyZXNDb25maWdQYXJzZXInKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNsaWVudCh1cmksIGRhdGFiYXNlT3B0aW9ucykge1xuICBsZXQgZGJPcHRpb25zID0ge307XG4gIGRhdGFiYXNlT3B0aW9ucyA9IGRhdGFiYXNlT3B0aW9ucyB8fCB7fTtcblxuICBpZiAodXJpKSB7XG4gICAgZGJPcHRpb25zID0gcGFyc2VyLmdldERhdGFiYXNlT3B0aW9uc0Zyb21VUkkodXJpKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGRhdGFiYXNlT3B0aW9ucykge1xuICAgIGRiT3B0aW9uc1trZXldID0gZGF0YWJhc2VPcHRpb25zW2tleV07XG4gIH1cblxuICBjb25zdCBpbml0T3B0aW9ucyA9IGRiT3B0aW9ucy5pbml0T3B0aW9ucyB8fCB7fTtcbiAgaW5pdE9wdGlvbnMubm9XYXJuaW5ncyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy5lbnYuVEVTVElORztcblxuICBjb25zdCBwZ3AgPSByZXF1aXJlKCdwZy1wcm9taXNlJykoaW5pdE9wdGlvbnMpO1xuICBjb25zdCBjbGllbnQgPSBwZ3AoZGJPcHRpb25zKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuUEFSU0VfU0VSVkVSX0xPR19MRVZFTCA9PT0gJ2RlYnVnJykge1xuICAgIGNvbnN0IG1vbml0b3IgPSByZXF1aXJlKCdwZy1tb25pdG9yJyk7XG4gICAgaWYgKG1vbml0b3IuaXNBdHRhY2hlZCgpKSB7XG4gICAgICBtb25pdG9yLmRldGFjaCgpO1xuICAgIH1cbiAgICBtb25pdG9yLmF0dGFjaChpbml0T3B0aW9ucyk7XG4gIH1cblxuICBpZiAoZGJPcHRpb25zLnBnT3B0aW9ucykge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGRiT3B0aW9ucy5wZ09wdGlvbnMpIHtcbiAgICAgIHBncC5wZy5kZWZhdWx0c1trZXldID0gZGJPcHRpb25zLnBnT3B0aW9uc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGNsaWVudCwgcGdwIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLHdCQUF3QixDQUFDO0FBRXpDLFNBQVNDLFlBQVlBLENBQUNDLEdBQUcsRUFBRUMsZUFBZSxFQUFFO0VBQ2pELElBQUlDLFNBQVMsR0FBRyxDQUFDLENBQUM7RUFDbEJELGVBQWUsR0FBR0EsZUFBZSxJQUFJLENBQUMsQ0FBQztFQUV2QyxJQUFJRCxHQUFHLEVBQUU7SUFDUEUsU0FBUyxHQUFHTCxNQUFNLENBQUNNLHlCQUF5QixDQUFDSCxHQUFHLENBQUM7RUFDbkQ7RUFFQSxLQUFLLE1BQU1JLEdBQUcsSUFBSUgsZUFBZSxFQUFFO0lBQ2pDQyxTQUFTLENBQUNFLEdBQUcsQ0FBQyxHQUFHSCxlQUFlLENBQUNHLEdBQUcsQ0FBQztFQUN2QztFQUVBLE1BQU1DLFdBQVcsR0FBR0gsU0FBUyxDQUFDRyxXQUFXLElBQUksQ0FBQyxDQUFDO0VBQy9DQSxXQUFXLENBQUNDLFVBQVUsR0FBR0MsT0FBTyxJQUFJQSxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsT0FBTztFQUV2RCxNQUFNQyxHQUFHLEdBQUdaLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQ08sV0FBVyxDQUFDO0VBQzlDLE1BQU1NLE1BQU0sR0FBR0QsR0FBRyxDQUFDUixTQUFTLENBQUM7RUFFN0IsSUFBSUssT0FBTyxDQUFDQyxHQUFHLENBQUNJLHNCQUFzQixLQUFLLE9BQU8sRUFBRTtJQUNsRCxNQUFNQyxPQUFPLEdBQUdmLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDckMsSUFBSWUsT0FBTyxDQUFDQyxVQUFVLENBQUMsQ0FBQyxFQUFFO01BQ3hCRCxPQUFPLENBQUNFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCO0lBQ0FGLE9BQU8sQ0FBQ0csTUFBTSxDQUFDWCxXQUFXLENBQUM7RUFDN0I7RUFFQSxJQUFJSCxTQUFTLENBQUNlLFNBQVMsRUFBRTtJQUN2QixLQUFLLE1BQU1iLEdBQUcsSUFBSUYsU0FBUyxDQUFDZSxTQUFTLEVBQUU7TUFDckNQLEdBQUcsQ0FBQ1EsRUFBRSxDQUFDQyxRQUFRLENBQUNmLEdBQUcsQ0FBQyxHQUFHRixTQUFTLENBQUNlLFNBQVMsQ0FBQ2IsR0FBRyxDQUFDO0lBQ2pEO0VBQ0Y7RUFFQSxPQUFPO0lBQUVPLE1BQU07SUFBRUQ7RUFBSSxDQUFDO0FBQ3hCIiwiaWdub3JlTGlzdCI6W119