eslint-plugin-import-sorting
Version:
ESLint plugin to group and sort imports by module, à la Python isort
39 lines (38 loc) • 1.45 kB
JavaScript
import { getEslintDisabledRules } from "./get-eslint-disabled-rules.js";
function getEslintDisabledLines({
ruleName,
sourceCode
}) {
let returnValue = [];
let lineRulePermanentlyDisabled = void 0;
for (let comment of sourceCode.getAllComments()) {
let eslintDisabledRules = getEslintDisabledRules(comment.value);
let isRuleDisabled = (eslintDisabledRules == null ? void 0 : eslintDisabledRules.rules) === "all" || (eslintDisabledRules == null ? void 0 : eslintDisabledRules.rules.includes(ruleName));
if (!isRuleDisabled)
continue;
switch (eslintDisabledRules == null ? void 0 : eslintDisabledRules.eslintDisableDirective) {
case "eslint-disable-next-line":
returnValue.push(comment.loc.end.line + 1);
continue;
case "eslint-disable-line":
returnValue.push(comment.loc.start.line);
continue;
case "eslint-disable":
lineRulePermanentlyDisabled ?? (lineRulePermanentlyDisabled = comment.loc.start.line);
break;
case "eslint-enable":
if (!lineRulePermanentlyDisabled)
continue;
returnValue.push(
...createArrayFromTo(lineRulePermanentlyDisabled + 1, comment.loc.start.line)
);
lineRulePermanentlyDisabled = void 0;
break;
}
}
return returnValue;
}
let createArrayFromTo = (i, index) => Array.from({ length: index - i + 1 }, (_, item) => i + item);
export {
getEslintDisabledLines
};