UNPKG

typeorm

Version:

Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.

78 lines (76 loc) 3.08 kB
/** * Common driver utility functions. */ var DriverUtils = /** @class */ (function () { function DriverUtils() { } // ------------------------------------------------------------------------- // Public Static Methods // ------------------------------------------------------------------------- /** * Normalizes and builds a new driver options. * Extracts settings from connection url and sets to a new options object. */ DriverUtils.buildDriverOptions = function (options, buildOptions) { if (options.url) { var parsedUrl = this.parseConnectionUrl(options.url); if (buildOptions && buildOptions.useSid) { var urlDriverOptions = { type: options.type, host: parsedUrl.host, username: parsedUrl.username, password: parsedUrl.password, port: parsedUrl.port, sid: parsedUrl.database }; return Object.assign(urlDriverOptions, options); } else { var urlDriverOptions = { type: options.type, host: parsedUrl.host, username: parsedUrl.username, password: parsedUrl.password, port: parsedUrl.port, database: parsedUrl.database }; return Object.assign(urlDriverOptions, options); } } return Object.assign({}, options); }; // ------------------------------------------------------------------------- // Private Static Methods // ------------------------------------------------------------------------- /** * Extracts connection data from the connection url. */ DriverUtils.parseConnectionUrl = function (url) { var firstSlashes = url.indexOf("//"); var preBase = url.substr(firstSlashes + 2); var secondSlash = preBase.indexOf("/"); var base = (secondSlash !== -1) ? preBase.substr(0, secondSlash) : preBase; var afterBase = (secondSlash !== -1) ? preBase.substr(secondSlash + 1) : undefined; var lastAtSign = base.lastIndexOf("@"); var usernameAndPassword = base.substr(0, lastAtSign); var hostAndPort = base.substr(lastAtSign + 1); var username = usernameAndPassword; var password = ""; var firstColon = usernameAndPassword.indexOf(":"); if (firstColon !== -1) { username = usernameAndPassword.substr(0, firstColon); password = usernameAndPassword.substr(firstColon + 1); } var _a = hostAndPort.split(":"), host = _a[0], port = _a[1]; return { host: host, username: username, password: password, port: port ? parseInt(port) : undefined, database: afterBase || undefined }; }; return DriverUtils; }()); export { DriverUtils }; //# sourceMappingURL=DriverUtils.js.map