@qrvey/formula-lang
Version:
QFormula support for qrvey projects
29 lines • 1.19 kB
JavaScript
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