pg-dump-restore
Version:
Nodejs wrapper around the pg_dump and pg_restore
34 lines (33 loc) • 1.56 kB
JavaScript
;
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;