eslint-plugin-logical-properties
Version:
25 lines (24 loc) • 1.06 kB
JavaScript
import { prefixedRules as rules } from '../rules/index.js';
import { defaultFunctions, defaultJsxAttributes, defaultKeyframes, defaultResolvers, rulePrefix, } from '../constants.js';
import plugin from '../plugin.js';
const getOptional = (input, fallback) => ((input && input.length > 0) ? [...input] : [...fallback]);
export const createLogicalPropertiesConfig = (severity = 'error', options = {}) => {
const functions = getOptional(options.functions, defaultFunctions);
const jsxAttributes = getOptional(options.jsxAttributes, defaultJsxAttributes);
const keyframes = getOptional(options.keyframes, defaultKeyframes);
const resolvers = getOptional(options.resolvers, defaultResolvers);
const configOptions = {
functions,
jsxAttributes,
keyframes,
resolvers,
};
const configRules = (Object.fromEntries(Object.keys(rules)
.map((name) => [name, [severity, configOptions]])));
return {
plugins: {
[rulePrefix]: plugin,
},
rules: configRules,
};
};