ifc-expressions
Version:
Parsing and evaluation of IFC expressions
41 lines (40 loc) • 3.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapException = void 0;
const ExprEvalResult_js_1 = require("../expression/ExprEvalResult.js");
const SyntaxErrorException_js_1 = require("./SyntaxErrorException.js");
const SyntaxErrorMapper_js_1 = require("./mapper/SyntaxErrorMapper.js");
const IfcExpressionUtils_js_1 = require("../util/IfcExpressionUtils.js");
const ExprKind_js_1 = require("../expression/ExprKind.js");
const MissingFunctionArgumentExceptionMapper_js_1 = require("./mapper/MissingFunctionArgumentExceptionMapper.js");
const NoSuchFunctionExceptionMapper_js_1 = require("./mapper/NoSuchFunctionExceptionMapper.js");
const ExpressionTypeError_js_1 = require("./ExpressionTypeError.js");
const MissingFunctionArgumentException_js_1 = require("./MissingFunctionArgumentException.js");
const NoSuchFunctionException_js_1 = require("./NoSuchFunctionException.js");
const NoSuchMethodException_js_1 = require("./NoSuchMethodException.js");
const WrongFunctionArgumentTypeException_js_1 = require("./WrongFunctionArgumentTypeException.js");
const WrongFunctionArgumentTypeExceptionMapper_js_1 = require("./mapper/WrongFunctionArgumentTypeExceptionMapper.js");
const InvalidSyntaxException_js_1 = require("./InvalidSyntaxException.js");
const ValidationExceptionMapper_js_1 = require("./mapper/ValidationExceptionMapper.js");
const ValidationException_js_1 = require("./ValidationException.js");
const SpuriousFunctionArgumentExceptionMapper_js_1 = require("./mapper/SpuriousFunctionArgumentExceptionMapper.js");
const SpuriousFunctionArgumentException_js_1 = require("./SpuriousFunctionArgumentException.js");
const mappers = new Map();
mappers.set(SyntaxErrorException_js_1.SyntaxErrorException.name, new SyntaxErrorMapper_js_1.SyntaxErrorMapper());
mappers.set(ValidationException_js_1.ValidationException.name, new ValidationExceptionMapper_js_1.ValidationExceptionMapper());
mappers.set(ExpressionTypeError_js_1.ExpressionTypeError.name, mappers.get(ValidationException_js_1.ValidationException.name));
mappers.set(MissingFunctionArgumentException_js_1.MissingFunctionArgumentException.name, new MissingFunctionArgumentExceptionMapper_js_1.MissingFunctionArgumentExceptionMapper());
mappers.set(SpuriousFunctionArgumentException_js_1.SpuriousFunctionArgumentException.name, new SpuriousFunctionArgumentExceptionMapper_js_1.SpuriousFunctionArgumentExceptionMapper());
mappers.set(NoSuchFunctionException_js_1.NoSuchFunctionException.name, new NoSuchFunctionExceptionMapper_js_1.NoSuchFunctionExceptionMapper());
mappers.set(NoSuchMethodException_js_1.NoSuchMethodException.name, mappers.get(NoSuchFunctionException_js_1.NoSuchFunctionException.name));
mappers.set(WrongFunctionArgumentTypeException_js_1.WrongFunctionArgumentTypeException.name, new WrongFunctionArgumentTypeExceptionMapper_js_1.WrongFunctionArgumentTypeExceptionMapper());
mappers.set(InvalidSyntaxException_js_1.InvalidSyntaxException.name, mappers.get(ValidationException_js_1.ValidationException.name));
function mapException(e) {
const mapper = mappers.get(e.constructor.name);
if ((0, IfcExpressionUtils_js_1.isNullish)(mapper)) {
return new ExprEvalResult_js_1.ExprEvalErrorObj(ExprKind_js_1.ExprKind.PARSE_ERROR, ExprEvalResult_js_1.ExprEvalStatus.ERROR, e.message, this.getTextSpan());
}
return mapper.mapException(e);
}
exports.mapException = mapException;
//# sourceMappingURL=ExceptionToExprEvalErrorMapper.js.map