UNPKG

@argdown/node

Version:

Async Argdown application for node.js

39 lines 1.84 kB
import { ArgdownPluginError } from "@argdown/core"; export class LogParserErrorsPlugin { name = "LogParserErrorsPlugin"; 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 (const error of response.parserErrors) { const message = error.message; let startLine, startColumn; if (error.token && error.token.tokenType && error.token.tokenType.name === "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 ArgdownPluginError(this.name, "parser-errors", "Invalid Argdown syntax detected."); } return response; }; } //# sourceMappingURL=LogParserErrorsPlugin.js.map