ember-template-lint
Version:
Linter for Ember or Handlebars templates.
40 lines (37 loc) • 1.15 kB
JavaScript
import { IGNORE_SEVERITY, WARNING_SEVERITY, ERROR_SEVERITY } from './severity.js';
function _determineConfigForSeverity(config) {
switch (config) {
case 'off': {
return { config: false, severity: IGNORE_SEVERITY };
}
case 'warn': {
return { config: true, severity: WARNING_SEVERITY };
}
case 'error': {
return { config: true, severity: ERROR_SEVERITY };
}
}
}
export default function determineRuleConfig(ruleData) {
let ruleConfig = {
severity: ruleData === false ? IGNORE_SEVERITY : ERROR_SEVERITY,
config: ruleData,
};
let severityConfig;
// In case of {'no-implicit-this': 'off|warn|error'}
if (typeof ruleData === 'string') {
severityConfig = _determineConfigForSeverity(ruleData);
if (severityConfig) {
ruleConfig = severityConfig;
}
} else if (Array.isArray(ruleData)) {
// array of severity and custom rule config
let severity = ruleData[0];
severityConfig = _determineConfigForSeverity(severity);
if (severityConfig) {
ruleConfig.severity = severityConfig.severity;
ruleConfig.config = ruleData[1];
}
}
return ruleConfig;
}