UNPKG

@cucumber/gherkin

Version:
52 lines 6.95 kB
export class GherkinException extends Error { errors; location; constructor(message) { super(message); const actualProto = new.target.prototype; // https://stackoverflow.com/questions/41102060/typescript-extending-error-class if (Object.setPrototypeOf) { Object.setPrototypeOf(this, actualProto); } else { // @ts-expect-error // biome-ignore lint/suspicious/noProto: Object.setPrototypeOf is used if available this.__proto__ = actualProto; } } static _create(message, location) { const column = location != null ? location.column || 0 : -1; const line = location != null ? location.line || 0 : -1; const m = `(${line}:${column}): ${message}`; const err = new this(m); err.location = location; return err; } } export class ParserException extends GherkinException { static create(message, line, column) { const err = new ParserException(`(${line}:${column}): ${message}`); err.location = { line, column }; return err; } } export class CompositeParserException extends GherkinException { static create(errors) { const message = `Parser errors:\n${errors.map((e) => e.message).join('\n')}`; const err = new CompositeParserException(message); err.errors = errors; return err; } } export class AstBuilderException extends GherkinException { static create(message, location) { return AstBuilderException._create(message, location); } } export class NoSuchLanguageException extends GherkinException { static create(language, location) { const message = `Language not supported: ${language}`; return NoSuchLanguageException._create(message, location); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsS0FBSztJQUNsQyxNQUFNLENBQVM7SUFDZixRQUFRLENBQVU7SUFFekIsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVkLE1BQU0sV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUV4QyxnRkFBZ0Y7UUFDaEYsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixtQkFBbUI7WUFDbkIsbUZBQW1GO1lBQ25GLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFBO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRVMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFlLEVBQUUsUUFBbUI7UUFDM0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNELE1BQU0sSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sT0FBTyxFQUFFLENBQUE7UUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDdkIsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFlLEVBQUUsSUFBWSxFQUFFLE1BQWM7UUFDaEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDbEUsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUMvQixPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFlO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7UUFDNUUsTUFBTSxHQUFHLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNqRCxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNuQixPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFlLEVBQUUsUUFBa0I7UUFDdEQsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFDcEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQixFQUFFLFFBQW1CO1FBQ3hELE1BQU0sT0FBTyxHQUFHLDJCQUEyQixRQUFRLEVBQUUsQ0FBQTtRQUNyRCxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMb2NhdGlvbiB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcblxuZXhwb3J0IGNsYXNzIEdoZXJraW5FeGNlcHRpb24gZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBlcnJvcnM6IEVycm9yW11cbiAgcHVibGljIGxvY2F0aW9uOiBMb2NhdGlvblxuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG5cbiAgICBjb25zdCBhY3R1YWxQcm90byA9IG5ldy50YXJnZXQucHJvdG90eXBlXG5cbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MTEwMjA2MC90eXBlc2NyaXB0LWV4dGVuZGluZy1lcnJvci1jbGFzc1xuICAgIGlmIChPYmplY3Quc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBhY3R1YWxQcm90bylcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub1Byb3RvOiBPYmplY3Quc2V0UHJvdG90eXBlT2YgaXMgdXNlZCBpZiBhdmFpbGFibGVcbiAgICAgIHRoaXMuX19wcm90b19fID0gYWN0dWFsUHJvdG9cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhdGljIF9jcmVhdGUobWVzc2FnZTogc3RyaW5nLCBsb2NhdGlvbj86IExvY2F0aW9uKSB7XG4gICAgY29uc3QgY29sdW1uID0gbG9jYXRpb24gIT0gbnVsbCA/IGxvY2F0aW9uLmNvbHVtbiB8fCAwIDogLTFcbiAgICBjb25zdCBsaW5lID0gbG9jYXRpb24gIT0gbnVsbCA/IGxvY2F0aW9uLmxpbmUgfHwgMCA6IC0xXG4gICAgY29uc3QgbSA9IGAoJHtsaW5lfToke2NvbHVtbn0pOiAke21lc3NhZ2V9YFxuICAgIGNvbnN0IGVyciA9IG5ldyB0aGlzKG0pXG4gICAgZXJyLmxvY2F0aW9uID0gbG9jYXRpb25cbiAgICByZXR1cm4gZXJyXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhcnNlckV4Y2VwdGlvbiBleHRlbmRzIEdoZXJraW5FeGNlcHRpb24ge1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShtZXNzYWdlOiBzdHJpbmcsIGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpIHtcbiAgICBjb25zdCBlcnIgPSBuZXcgUGFyc2VyRXhjZXB0aW9uKGAoJHtsaW5lfToke2NvbHVtbn0pOiAke21lc3NhZ2V9YClcbiAgICBlcnIubG9jYXRpb24gPSB7IGxpbmUsIGNvbHVtbiB9XG4gICAgcmV0dXJuIGVyclxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb3NpdGVQYXJzZXJFeGNlcHRpb24gZXh0ZW5kcyBHaGVya2luRXhjZXB0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBjcmVhdGUoZXJyb3JzOiBFcnJvcltdKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBQYXJzZXIgZXJyb3JzOlxcbiR7ZXJyb3JzLm1hcCgoZSkgPT4gZS5tZXNzYWdlKS5qb2luKCdcXG4nKX1gXG4gICAgY29uc3QgZXJyID0gbmV3IENvbXBvc2l0ZVBhcnNlckV4Y2VwdGlvbihtZXNzYWdlKVxuICAgIGVyci5lcnJvcnMgPSBlcnJvcnNcbiAgICByZXR1cm4gZXJyXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFzdEJ1aWxkZXJFeGNlcHRpb24gZXh0ZW5kcyBHaGVya2luRXhjZXB0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBjcmVhdGUobWVzc2FnZTogc3RyaW5nLCBsb2NhdGlvbjogTG9jYXRpb24pIHtcbiAgICByZXR1cm4gQXN0QnVpbGRlckV4Y2VwdGlvbi5fY3JlYXRlKG1lc3NhZ2UsIGxvY2F0aW9uKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb1N1Y2hMYW5ndWFnZUV4Y2VwdGlvbiBleHRlbmRzIEdoZXJraW5FeGNlcHRpb24ge1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShsYW5ndWFnZTogc3RyaW5nLCBsb2NhdGlvbj86IExvY2F0aW9uKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBMYW5ndWFnZSBub3Qgc3VwcG9ydGVkOiAke2xhbmd1YWdlfWBcbiAgICByZXR1cm4gTm9TdWNoTGFuZ3VhZ2VFeGNlcHRpb24uX2NyZWF0ZShtZXNzYWdlLCBsb2NhdGlvbilcbiAgfVxufVxuIl19