@clickup/pg-microsharding
Version:
Microshards support for PostgreSQL
22 lines • 1.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeDsns = normalizeDsns;
const compact_1 = __importDefault(require("lodash/compact"));
const uniq_1 = __importDefault(require("lodash/uniq"));
const isMasterDsn_1 = require("./isMasterDsn");
const normalizeDsn_1 = require("./normalizeDsn");
const promiseAllMap_1 = require("./promiseAllMap");
/**
* Same as normalizeDsn(), but assumes comma separated list of DSNs. Also,
* allows passing numbers instead of DSNs; if so, the actual DSN will be chosen
* by the index from islandDsns argument.
*/
async function normalizeDsns(dsnsIn) {
const dsns = (0, uniq_1.default)((0, compact_1.default)(dsnsIn === null || dsnsIn === void 0 ? void 0 : dsnsIn.split(/[,\s]+/s).map((dsn) => (0, normalizeDsn_1.normalizeDsn)(dsn))));
const masterDsns = (0, compact_1.default)(await (0, promiseAllMap_1.promiseAllMap)(dsns, async (dsn) => (await (0, isMasterDsn_1.isMasterDsn)(dsn)) ? dsn : null));
return masterDsns;
}
//# sourceMappingURL=normalizeDsns.js.map