UNPKG

5.55 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../lib/eslint/customFormatter.ts"],"names":["MessageSeverity","formatMessage","dir","messages","filePath","fileName","path","posix","normalize","relative","replace","startsWith","output","chalk","cyan","nextPluginWarningCount","nextPluginErrorCount","i","length","message","severity","line","column","ruleId","yellow","toString","includes","Warning","bold","red","gray","formatResults","baseDir","results","totalNextPluginErrorCount","totalNextPluginWarningCount","formattedResults","filter","map","res","join"],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\n\n// eslint-disable-next-line no-shadow\nexport enum MessageSeverity {\n Warning = 1,\n Error = 2,\n}\n\ninterface LintMessage {\n ruleId: string | null\n severity: 1 | 2\n message: string\n line: number\n column: number\n}\n\nexport interface LintResult {\n filePath: string\n messages: LintMessage[]\n errorCount: number\n warningCount: number\n output?: string\n source?: string\n}\n\nfunction formatMessage(\n dir: string,\n messages: LintMessage[],\n filePath: string\n): {\n output: string\n nextPluginErrorCount: number\n nextPluginWarningCount: number\n} {\n let fileName = path.posix.normalize(\n path.relative(dir, filePath).replace(/\\\\/g, '/')\n )\n\n if (!fileName.startsWith('.')) {\n fileName = './' + fileName\n }\n\n let output = '\\n' + chalk.cyan(fileName)\n let nextPluginWarningCount = 0\n let nextPluginErrorCount = 0\n\n for (let i = 0; i < messages.length; i++) {\n const { message, severity, line, column, ruleId } = messages[i]\n\n output = output + '\\n'\n\n if (line && column) {\n output =\n output +\n chalk.yellow(line.toString()) +\n ':' +\n chalk.yellow(column.toString()) +\n ' '\n }\n\n if (ruleId?.includes('@next/next')) {\n if (severity === MessageSeverity.Warning) {\n nextPluginWarningCount += 1\n } else {\n nextPluginErrorCount += 1\n }\n }\n\n if (severity === MessageSeverity.Warning) {\n output += chalk.yellow.bold('Warning') + ': '\n } else {\n output += chalk.red.bold('Error') + ': '\n }\n\n output += message\n\n if (ruleId) {\n output += ' ' + chalk.gray.bold(ruleId)\n }\n }\n\n return {\n output,\n nextPluginErrorCount,\n nextPluginWarningCount,\n }\n}\n\nexport function formatResults(\n baseDir: string,\n results: LintResult[]\n): {\n output: string\n totalNextPluginErrorCount: number\n totalNextPluginWarningCount: number\n} {\n let totalNextPluginErrorCount = 0\n let totalNextPluginWarningCount = 0\n\n const formattedResults = results\n .filter(({ messages }) => messages?.length)\n .map(({ messages, filePath }) => {\n const res = formatMessage(baseDir, messages, filePath)\n totalNextPluginErrorCount += res.nextPluginErrorCount\n totalNextPluginWarningCount += res.nextPluginWarningCount\n return res.output\n })\n .join('\\n')\n\n return {\n output:\n formattedResults.length > 0\n ? formattedResults +\n `\\n\\n${chalk.bold(\n 'Need to disable some ESLint rules? Learn more here:'\n )} https://nextjs.org/docs/basic-features/eslint#disabling-rules\\n`\n : '',\n totalNextPluginErrorCount,\n totalNextPluginWarningCount,\n }\n}\n"]}
\No newline at end of file