From 4482916f98976358a8a59d1ea0ac3536363a4cc8 Mon Sep 17 00:00:00 2001 From: Jack Bates Date: Fri, 1 Apr 2022 10:19:51 -0700 Subject: [PATCH] Combine severity types --- packages/unified-lint-rule/index.d.ts | 9 +++------ packages/unified-lint-rule/lib/index.js | 12 +++++------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/packages/unified-lint-rule/index.d.ts b/packages/unified-lint-rule/index.d.ts index 326df65d..5a9107f8 100644 --- a/packages/unified-lint-rule/index.d.ts +++ b/packages/unified-lint-rule/index.d.ts @@ -1,7 +1,7 @@ import type {Node} from 'unist' import type {VFile} from 'vfile' import type {Plugin} from 'unified' -import type {Label, Severity} from './lib/index.js' +import type {Severity} from './lib/index.js' export interface RuleMeta { /** @@ -18,10 +18,7 @@ export interface RuleMeta { export function lintRule( name: string | RuleMeta, rule: Rule -): Plugin< - void[] | [Options | [boolean | Label | Severity, (Options | undefined)?]], - Tree -> +): Plugin export type Rule = ( node: Tree, @@ -29,4 +26,4 @@ export type Rule = ( options: Options ) => Promise | Tree | undefined | void -export {Severity, Label} from './lib/index.js' +export {Severity} from './lib/index.js' diff --git a/packages/unified-lint-rule/lib/index.js b/packages/unified-lint-rule/lib/index.js index 4c5c2be3..6ce5be87 100644 --- a/packages/unified-lint-rule/lib/index.js +++ b/packages/unified-lint-rule/lib/index.js @@ -2,9 +2,7 @@ * @typedef {import('unist').Node} Node * @typedef {import('vfile').VFile} VFile * - * @typedef {0|1|2} Severity - * @typedef {'warn'|'on'|'off'|'error'} Label - * @typedef {[Severity, ...Array]} SeverityTuple + * @typedef {boolean|'off'|'on'|'warn'|'error'|0|1|2} Severity * * @typedef RuleMeta * @property {string} origin name of the lint rule @@ -38,11 +36,11 @@ export function lintRule(meta, rule) { /** @type {import('unified').Plugin<[unknown]|Array>} */ function plugin(config) { - const [severity, options] = coerce(ruleId, config) + const [number, options] = coerce(ruleId, config) - if (!severity) return + if (!number) return - const fatal = severity === 2 + const fatal = number === 2 return (tree, file, next) => { let index = file.messages.length - 1 @@ -75,7 +73,7 @@ export function lintRule(meta, rule) { * * @param {string} name * @param {unknown} config - * @returns {SeverityTuple} + * @returns {[Severity&number, ...Array]} */ function coerce(name, config) { if (!Array.isArray(config)) return [1, config]