From ff8dd6433def92dcfb701402e14577d6ddae2fa8 Mon Sep 17 00:00:00 2001 From: Georgii Petrov Date: Thu, 1 Feb 2024 16:55:15 +0300 Subject: [PATCH] [utils] deepMergeObjecs(), isObject() functions added --- Common/config/default.json | 4 +-- Common/sources/utils.js | 29 +++++++++++++++++++ .../databaseConnectors/mssqlConnector.js | 12 +------- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/Common/config/default.json b/Common/config/default.json index 94f42bd1..d1416644 100644 --- a/Common/config/default.json +++ b/Common/config/default.json @@ -177,7 +177,7 @@ "connectionlimit": 10, "max_allowed_packet": 1048575, "pgPoolExtraOptions": { - "idleTimeoutMillis": 3000, + "idleTimeoutMillis": 30000, "maxLifetimeSeconds ": 60000, "statement_timeout ": 60000, "query_timeout ": 60000, @@ -202,7 +202,7 @@ "trustServerCertificate": true }, "pool": { - "idleTimeoutMillis": 3000 + "idleTimeoutMillis": 30000 } } }, diff --git a/Common/sources/utils.js b/Common/sources/utils.js index 3b02a5f9..811d571d 100644 --- a/Common/sources/utils.js +++ b/Common/sources/utils.js @@ -1111,3 +1111,32 @@ exports.checksumFile = function(hashName, path) { stream.on('end', () => resolve(hash.digest('hex'))); }); }; + +function isObject(item) { + return (item && typeof item === 'object' && !Array.isArray(item)); +} + +function deepMergeObjects(target, ...sources) { + if (!sources.length) { + return target; + } + + const source = sources.shift(); + if (isObject(target) && isObject(source)) { + for (const key in source) { + if (isObject(source[key])) { + if (!target[key]) { + Object.assign(target, { [key]: {} }); + } + + deepMergeObjects(target[key], source[key]); + } else { + Object.assign(target, { [key]: source[key] }); + } + } + } + + return deepMergeObjects(target, ...sources); +} +exports.isObject = isObject; +exports.deepMergeObjects = deepMergeObjects; \ No newline at end of file diff --git a/DocService/sources/databaseConnectors/mssqlConnector.js b/DocService/sources/databaseConnectors/mssqlConnector.js index e77f208d..63811803 100644 --- a/DocService/sources/databaseConnectors/mssqlConnector.js +++ b/DocService/sources/databaseConnectors/mssqlConnector.js @@ -54,17 +54,7 @@ const connectionConfiguration = { } }; const additionalOptions = configSql.get('msSqlExtraOptions'); - -const mergedObjects = {}; -for (const option in additionalOptions) { - if (connectionConfiguration.hasOwnProperty(option) && typeof connectionConfiguration[option] === 'object') { - mergedObjects[option] = Object.assign({}, connectionConfiguration[option], additionalOptions[option]); - } else { - mergedObjects[option] = additionalOptions[option]; - } -} - -const configuration = Object.assign({}, connectionConfiguration, mergedObjects); +const configuration = utils.deepMergeObjects({}, connectionConfiguration, additionalOptions); const placeholderPrefix = 'ph_';