UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

29 lines 1.19 kB
import { ENGINES, RESPONSE_LEVEL } from '../../constants'; import { ERROR_DICTIONARY } from '../dictionary'; import { getInfo as snowflake } from './snowflake'; import { getInfo as elasticsearch } from './elasticsearch'; import { getInfo as redshift } from './redshift'; import { getInfo as postgresql } from './postgresql'; export function errorAnalyzer(engine, errorObj) { const info = { [ENGINES.ELASTICSEARCH]: elasticsearch, [ENGINES.SNOWFLAKE]: snowflake, [ENGINES.REDSHIFT]: redshift, [ENGINES.POSTGRESQL]: postgresql, }; const { errorList, messageList } = info[engine](errorObj); const currentError = analyzer(messageList, errorList); return Object.assign({ valid: false, source: RESPONSE_LEVEL.runtime, info: errorObj }, currentError); } function analyzer(messageList, errorList) { let result = ERROR_DICTIONARY.unknown; messageList.forEach((message) => { errorList.forEach((element) => { const regex = new RegExp(element.regex, 'g'); if (regex.test(message)) result = ERROR_DICTIONARY[element.value]; }); }); return result; } //# sourceMappingURL=index.js.map