Skip to content

Commit

Permalink
refactor: simplify postprocess and verify types
Browse files Browse the repository at this point in the history
  • Loading branch information
JounQin committed Mar 13, 2021
1 parent 19a9b5d commit 50251ff
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 37 deletions.
5 changes: 3 additions & 2 deletions packages/eslint-plugin-mdx/src/processors/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { markdown } from './markdown'
import { remark } from './remark'

export * from './options'
export * from './types'

export const processors = {
markdown,
remark,
}

export * from './options'
10 changes: 5 additions & 5 deletions packages/eslint-plugin-mdx/src/processors/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ if (!linterPath) {
throw new Error('Could not find ESLint Linter in require cache')
}

export interface LinterConfig extends Linter.Config {
extractConfig?(filename: string): Linter.Config
}

// eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
const ESLinter = (require(linterPath) as typeof import('eslint')).Linter

Expand All @@ -27,13 +31,9 @@ const { verify } = ESLinter.prototype

ESLinter.prototype.verify = function (
code: SourceCode | string,
_config: Linter.Config,
config: LinterConfig,
options: string | Linter.LintOptions,
) {
const config = _config as Linter.Config & {
extractConfig?(filename: string): Linter.Config
}

// fetch settings
const settings =
(config &&
Expand Down
52 changes: 22 additions & 30 deletions packages/eslint-plugin-mdx/src/processors/remark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,35 +16,27 @@ export const remark: ESLintProcessor = {
return [...markdown.preprocess(text, filename), text]
},
postprocess(lintMessages, filename) {
lintMessages = [markdown.postprocess(lintMessages, filename)]

const messages: Linter.LintMessage[] = []
for (const lintMessageList of lintMessages) {
messages.push(
...lintMessageList.map(lintMessage => {
const {
message,
ruleId: eslintRuleId,
severity: eslintSeverity,
} = lintMessage

if (eslintRuleId !== 'mdx/remark') {
return lintMessage
}

const { source, ruleId, reason, severity } = JSON.parse(
message,
) as RemarkLintMessage

return {
...lintMessage,
ruleId: `${source}-${ruleId}`,
message: reason,
severity: Math.max(eslintSeverity, severity) as Linter.Severity,
}
}),
)
}
return messages
return markdown.postprocess(lintMessages, filename).map(lintMessage => {
const {
message,
ruleId: eslintRuleId,
severity: eslintSeverity,
} = lintMessage

if (eslintRuleId !== 'mdx/remark') {
return lintMessage
}

const { source, ruleId, reason, severity } = JSON.parse(
message,
) as RemarkLintMessage

return {
...lintMessage,
ruleId: `${source}-${ruleId}`,
message: reason,
severity: Math.max(eslintSeverity, severity) as Linter.Severity,
}
})
},
}

0 comments on commit 50251ff

Please sign in to comment.