dsl-builder
Version:
OpenSearch Query Builder - Extract from OpenSearch Dashboards
60 lines (59 loc) • 2.16 kB
JavaScript
;
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*
* Any modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DQLSyntaxError = void 0;
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const lodash_1 = require("lodash");
const endOfInputText = 'end of input';
const grammarRuleTranslations = {
fieldName: 'field name',
value: 'value',
literal: 'literal',
whitespace: 'whitespace',
};
class DQLSyntaxError extends Error {
constructor(error, expression) {
let message = error.message;
if (error.expected) {
const translatedExpectations = error.expected.map(expected => {
return (grammarRuleTranslations[expected.description] || expected.description);
});
message = 'Expected {expectedList} but {foundInput} found.';
}
const fullMessage = [
message,
expression,
(0, lodash_1.repeat)('-', error.location.start.offset) + '^',
].join('\n');
super(fullMessage);
this.name = 'DQLSyntaxError';
this.shortMessage = message;
}
}
exports.DQLSyntaxError = DQLSyntaxError;