UNPKG

eslint-plugin-mdx

Version:
49 lines 1.8 kB
import { meta } from '../meta.js'; import { getShortLang } from './helpers.js'; import { markdownProcessor } from './markdown.js'; import { processorOptions as defaultProcessorOptions } from './options.js'; export const createRemarkProcessor = ({ languageMapper, lintCodeBlocks, ...syncOptions } = defaultProcessorOptions) => ({ meta: { name: 'mdx/remark', version: meta.version, }, supportsAutofix: true, preprocess(text, filename) { if (!lintCodeBlocks) { return [text]; } return [ text, ...markdownProcessor .preprocess(text, filename, syncOptions) .map(({ text, filename }) => ({ text, filename: filename.slice(0, filename.lastIndexOf('.')) + '.' + getShortLang(filename, languageMapper), })), ]; }, postprocess([mdxMessages, ...markdownMessages], filename) { return [ ...mdxMessages, ...markdownProcessor.postprocess(markdownMessages, filename), ] .sort((a, b) => a.line - b.line || a.column - b.column) .map(lintMessage => { const { message, ruleId: eslintRuleId, severity: eslintSeverity, } = lintMessage; if (eslintRuleId !== 'mdx/remark') { return lintMessage; } const { source, ruleId, reason, severity } = JSON.parse(message); return { ...lintMessage, ruleId: `${source}-${ruleId}`, message: reason, severity: Math.max(eslintSeverity, severity), }; }); }, }); export const remark = createRemarkProcessor(); //# sourceMappingURL=remark.js.map