sequelize-parse-url
Advanced tools
Comparing version
@@ -11,2 +11,5 @@ export interface Parsed { | ||
} | ||
export default function parseUrl(sourceUrl: any): Parsed; | ||
export interface ParseOptions { | ||
storage?: string; | ||
} | ||
export default function parseUrl(sourceUrl: any, options?: ParseOptions): Parsed; |
@@ -47,28 +47,28 @@ "use strict"; | ||
function parseUrl(sourceUrl) { | ||
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; | ||
var urlParts = _url.default.parse(sourceUrl, true); | ||
var options = { | ||
var parsed = { | ||
dialect: urlParts.protocol.replace(/:$/, ''), | ||
host: urlParts.hostname | ||
}; | ||
if (options.dialect === 'sqlite' && urlParts.pathname && !urlParts.pathname.startsWith('/:memory')) { | ||
var storagePath = _path.default.join(options.host, urlParts.pathname); | ||
options.storage = _path.default.resolve(options.storage || storagePath); | ||
if (parsed.dialect === 'sqlite' && urlParts.pathname && !urlParts.pathname.startsWith('/:memory')) { | ||
parsed.storage = _path.default.resolve(options.storage || _path.default.join(parsed.host, urlParts.pathname)); | ||
} | ||
if (urlParts.pathname) { | ||
options.database = urlParts.pathname.replace(/^\//, ''); | ||
parsed.database = urlParts.pathname.replace(/^\//, ''); | ||
} | ||
if (urlParts.port) { | ||
options.port = urlParts.port; | ||
parsed.port = urlParts.port; | ||
} | ||
if (urlParts.auth) { | ||
var authParts = urlParts.auth.split(':'); | ||
options.username = authParts[0]; | ||
if (authParts.length > 1) options.password = authParts.slice(1).join(':'); | ||
parsed.username = authParts[0]; | ||
if (authParts.length > 1) parsed.password = authParts.slice(1).join(':'); | ||
} | ||
if (urlParts.query) { | ||
if (options.dialectOptions) options.dialectOptions = _object_spread({}, options.dialectOptions, urlParts.query); | ||
else options.dialectOptions = urlParts.query; | ||
if (parsed.dialectOptions) parsed.dialectOptions = _object_spread({}, parsed.dialectOptions, urlParts.query); | ||
else parsed.dialectOptions = urlParts.query; | ||
} | ||
return options; | ||
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; } |
{ | ||
"name": "sequelize-parse-url", | ||
"version": "1.0.14", | ||
"version": "1.0.15", | ||
"description": "Parses a sequelize url into a configuration object", | ||
@@ -22,3 +22,11 @@ "keywords": [ | ||
"license": "MIT", | ||
"author": "Kevin Malakoff", | ||
"author": "Kevin Malakoff <kmalakoff@gmail.com> (https://github.com/kmalakoff)", | ||
"type": "module", | ||
"exports": { | ||
".": { | ||
"import": "./dist/esm/index.js", | ||
"require": "./dist/cjs/index.js" | ||
}, | ||
"./package.json": "./package.json" | ||
}, | ||
"main": "dist/cjs/index.js", | ||
@@ -44,7 +52,4 @@ "types": "dist/cjs/index.d.cts", | ||
"tsds": { | ||
"source": "src/index.ts", | ||
"targets": [ | ||
"cjs" | ||
] | ||
"source": "src/index.ts" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
13294
53.39%12
50%131
57.83%Yes
NaN