sequelize-parse-url
Version:
Parses a sequelize url into a configuration object
73 lines • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return parseUrl;
}
});
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
var _url = /*#__PURE__*/ _interop_require_default(require("url"));
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
function parseUrl(sourceUrl) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
var urlParts = _url.default.parse(sourceUrl, true);
var parsed = {
dialect: urlParts.protocol.replace(/:$/, ''),
host: urlParts.hostname
};
if (parsed.dialect === 'sqlite' && urlParts.pathname && urlParts.pathname.indexOf('/:memory') !== 0) {
parsed.storage = _path.default.resolve(options.storage || _path.default.join(parsed.host, urlParts.pathname));
}
if (urlParts.pathname) {
parsed.database = urlParts.pathname.replace(/^\//, '');
}
if (urlParts.port) {
parsed.port = urlParts.port;
}
if (urlParts.auth) {
var authParts = urlParts.auth.split(':');
parsed.username = authParts[0];
if (authParts.length > 1) parsed.password = authParts.slice(1).join(':');
}
if (urlParts.query) {
if (parsed.dialectOptions) parsed.dialectOptions = _object_spread({}, parsed.dialectOptions, urlParts.query);
else parsed.dialectOptions = urlParts.query;
}
return parsed;
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }