UNPKG

eslint-config-galex

Version:
58 lines (57 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.applyFlags = void 0; const severityLevels = { off: 0, warn: 1, error: 2, }; const convertRuleToEslintInternalValue = options => { if (Array.isArray(options)) { const [ruleLevel, ...rest] = options; if (typeof ruleLevel === 'number') { return options; } return [severityLevels[ruleLevel], ...rest]; } return typeof options === 'number' ? options : severityLevels[options]; }; const incrementalAdoptionRuleDowngrade = value => { const valueToForward = typeof value === 'number' || typeof value === 'string' ? value : value[0]; if (typeof valueToForward === 'string') { if (valueToForward === 'error') { return 'warn'; } return 'off'; } return valueToForward === 2 ? 1 : 0; }; const blankSlateDowngrade = () => { return 'off'; }; const createFlagFilterArray = ({ convertToESLintInternals, incrementalAdoption, blankSlate, }) => { return [ incrementalAdoption && incrementalAdoptionRuleDowngrade, blankSlate && blankSlateDowngrade, convertToESLintInternals && convertRuleToEslintInternalValue, ].filter((fn) => fn !== false); }; const applyFlags = (rules, flags) => { const convertToESLintInternals = flags.convertToESLintInternals ?? false; const incrementalAdoption = flags.incrementalAdoption ?? false; const blankSlate = flags.blankSlate ?? false; const hasFlags = convertToESLintInternals || incrementalAdoption || blankSlate; if (!hasFlags) { return rules; } const fnsToApply = createFlagFilterArray({ blankSlate, convertToESLintInternals, incrementalAdoption, }); return Object.fromEntries(Object.entries(rules).map(([ruleName, options]) => [ ruleName, fnsToApply.reduce((acc, fn) => fn(acc), options), ])); }; exports.applyFlags = applyFlags;