diff --git a/constants/constants.js b/constants/constants.js new file mode 100644 index 0000000..1d3e3cc --- /dev/null +++ b/constants/constants.js @@ -0,0 +1,7 @@ +const ERROR_MESSAGE = { + aborted: 'Query execution was aborted', +}; + +module.exports = { + ERROR_MESSAGE, +}; diff --git a/reverse_engineering/helpers/connectionHelper.js b/reverse_engineering/helpers/connectionHelper.js index 49c63ed..8eed43a 100644 --- a/reverse_engineering/helpers/connectionHelper.js +++ b/reverse_engineering/helpers/connectionHelper.js @@ -5,6 +5,7 @@ const exec = util.promisify(require('child_process').exec); const { spawn } = require('child_process'); const { buildQuery, queryType } = require('./queryHelper'); const localization = require('../../localization/en.json'); +const { ERROR_MESSAGE } = require('../../constants/constants'); const SYSTEM_DATABASES = [ 'val', @@ -175,11 +176,13 @@ const createConnection = async (connectionInfo, sshService, logger) => { const teradataClientPath = path.resolve(__dirname, '..', 'addons', 'TeradataClient.jar'); const teradataClientCommandArguments = buildCommand(teradataClientPath, connectionSettings); + const getAbortedError = () => new Error(ERROR_MESSAGE.aborted); + return { execute: (query, signal) => { return new Promise((resolve, reject) => { if (signal?.aborted) { - return reject(new Error('Query execution was aborted')); + return reject(getAbortedError()); } const queryArgument = createArgument('query', query); @@ -196,7 +199,7 @@ const createConnection = async (connectionInfo, sshService, logger) => { queryResult.kill('SIGTERM'); activeQueries.delete(queryResult); } - reject(new Error('Query execution was aborted')); + reject(getAbortedError()); }; if (signal) { diff --git a/reverse_engineering/helpers/prepareError.js b/reverse_engineering/helpers/prepareError.js index 2c339d4..3ae40a1 100644 --- a/reverse_engineering/helpers/prepareError.js +++ b/reverse_engineering/helpers/prepareError.js @@ -1,9 +1,17 @@ -const prepareError = error => ({ - message: error.message, - stack: error.stack, - type: error.type, - customMsgCode: error.customMsgCode, -}); +const { ERROR_MESSAGE } = require('../../constants/constants'); + +const prepareError = error => { + if (error.message === ERROR_MESSAGE.aborted) { + return null; + } + + return { + message: error.message, + stack: error.stack, + type: error.type, + customMsgCode: error.customMsgCode, + }; +}; module.exports = { prepareError,