UNPKG

@argdown/node

Version:

Async Argdown application for node.js

45 lines 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogParserErrorsPlugin = void 0; const core_1 = require("@argdown/core"); class LogParserErrorsPlugin { constructor() { this.name = "LogParserErrorsPlugin"; this.run = (request, response, logger) => { if (response.parserErrors && response.parserErrors.length > 0) { process.exitCode = 1; if (request.logParserErrors) { const inputFile = request.inputPath; const nrOfErrors = response.parserErrors.length; if (inputFile) { logger.log("error", `\u001b[31m\u001b[1mArgdown syntax errors in ${inputFile}: ${nrOfErrors}\u001b[0m\n`); } else { logger.log("error", `\u001b[31m\u001b[1mArgdown syntax errors in input: ${nrOfErrors}\u001b[0m\n`); } for (let error of response.parserErrors) { const message = error.message; var startLine, startColumn; if (error.token && error.token.tokenType && error.token.tokenType.name === core_1.TokenNames.EOF) { if (error.previousToken) { startLine = error.previousToken.startLine; startColumn = error.previousToken.startColumn; } } else { startLine = error.token.startLine; startColumn = error.token.startColumn; } logger.log("error", `\u001b[31mAt ${startLine}:${startColumn}\u001b[0m\n${message}\n`); } } throw new core_1.ArgdownPluginError(this.name, "parser-errors", "Invalid Argdown syntax detected."); } return response; }; } } exports.LogParserErrorsPlugin = LogParserErrorsPlugin; //# sourceMappingURL=LogParserErrorsPlugin.js.map