Files
Elite-Gaming-FiveM-Old/resources/mysql-async/src/server/settings.js
T
2021-12-03 01:05:09 +00:00

36 lines
1.2 KiB
JavaScript

const { parseUrl } = require('mysql/lib/ConnectionConfig');
const defaultCfg = {
host: '127.0.0.1',
user: 'root',
database: 'fivem',
supportBigNumbers: true,
multipleStatements: true,
};
function parseConnectingString(connectionString) {
let cfg = {};
if (/(?:database|initial\scatalog)=(?:(.*?);|(.*))/gi.test(connectionString)) {
// replace the old version with the new one
const connectionStr = connectionString
.replace(/(?:host|server|data\s?source|addr(?:ess)?)=/gi, 'host=')
.replace(/(?:port)=/gi, 'port=')
.replace(/(?:user\s?(?:id|name)?|uid)=/gi, 'user=')
.replace(/(?:password|pwd)=/gi, 'password=')
.replace(/(?:database|initial\scatalog)=/gi, 'database=');
connectionStr.split(';').forEach((el) => {
const equal = el.indexOf('=');
const key = (equal > -1) ? el.substr(0, equal) : el;
const value = (equal > -1) ? el.substr(equal + 1) : '';
cfg[key] = value;
});
} else if (/mysql:\/\//gi.test(connectionString)) {
cfg = parseUrl(connectionString);
} else throw new Error('No valid connection string found');
return Object.assign({}, defaultCfg, cfg);
}
module.exports = parseConnectingString;