UNPKG

pg-dump-restore

Version:

Nodejs wrapper around the pg_dump and pg_restore

34 lines (33 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConnectionArgs = exports.FormatEnum = exports.SslModeEnum = void 0; var SslModeEnum; (function (SslModeEnum) { SslModeEnum["Disable"] = "disable"; SslModeEnum["Allow"] = "allow"; SslModeEnum["Prefer"] = "prefer"; SslModeEnum["VerifyCa"] = "verify-ca"; SslModeEnum["VerifyFull"] = "verify-full"; })(SslModeEnum = exports.SslModeEnum || (exports.SslModeEnum = {})); var FormatEnum; (function (FormatEnum) { FormatEnum["Plain"] = "plain"; FormatEnum["Custom"] = "custom"; FormatEnum["Directory"] = "directory"; FormatEnum["Tar"] = "tar"; })(FormatEnum = exports.FormatEnum || (exports.FormatEnum = {})); const getConnectionArgs = (connectionOptions) => { const { port, host, database, username, password, sslMode } = connectionOptions; const connectionOptionsArray = [port, host, database, username, password]; connectionOptionsArray.forEach((arg) => { if (arg === undefined) throw new Error('Connection options are missing'); }); // Add the ability to use unix socket for postgresql connection URI const encodedPass = encodeURIComponent(password); const connectionArgs = host.startsWith('/') ? [`--dbname=postgresql:///${database}?user=${username}&password=${encodedPass}&host=${host}&port=${port}`] : [`--dbname=postgresql://${username}:${encodedPass}@${host}:${port}/${database}`]; return { sslMode, connectionArgs }; }; exports.getConnectionArgs = getConnectionArgs;