eslint-plugin-better-tailwindcss
Version:
auto-wraps tailwind classes after a certain print width or class count into multiple lines to improve readability.
66 lines • 2.51 kB
JavaScript
import { enforceConsistentVariableSyntax } from "../rules/enforce-consistent-variable-syntax.js";
import { multiline } from "../rules/multiline.js";
import { noConflictingClasses } from "../rules/no-conflicting-classes.js";
import { noDuplicateClasses } from "../rules/no-duplicate-classes.js";
import { noRestrictedClasses } from "../rules/no-restricted-classes.js";
import { noUnnecessaryWhitespace } from "../rules/no-unnecessary-whitespace.js";
import { noUnregisteredClasses } from "../rules/no-unregistered-classes.js";
import { sortClasses } from "../rules/sort-classes.js";
const plugin = {
meta: {
name: "better-tailwindcss"
},
rules: {
[enforceConsistentVariableSyntax.name]: enforceConsistentVariableSyntax.rule,
[multiline.name]: multiline.rule,
[noConflictingClasses.name]: noConflictingClasses.rule,
[noDuplicateClasses.name]: noDuplicateClasses.rule,
[noRestrictedClasses.name]: noRestrictedClasses.rule,
[noUnnecessaryWhitespace.name]: noUnnecessaryWhitespace.rule,
[noUnregisteredClasses.name]: noUnregisteredClasses.rule,
[sortClasses.name]: sortClasses.rule
}
};
const plugins = [plugin.meta.name];
const getStylisticRules = (severity = "warn") => {
return {
[`${plugin.meta.name}/${multiline.name}`]: severity,
[`${plugin.meta.name}/${noDuplicateClasses.name}`]: severity,
[`${plugin.meta.name}/${noUnnecessaryWhitespace.name}`]: severity,
[`${plugin.meta.name}/${sortClasses.name}`]: severity
};
};
const getCorrectnessRules = (severity = "error") => {
return {
[`${plugin.meta.name}/${noConflictingClasses.name}`]: severity,
[`${plugin.meta.name}/${noUnregisteredClasses.name}`]: severity
};
};
const createConfig = (name, getRulesFunction) => {
return {
[`${name}-error`]: {
plugins,
rules: getRulesFunction("error")
},
[`${name}-warn`]: {
plugins,
rules: getRulesFunction("warn")
},
[name]: {
plugins,
rules: getRulesFunction()
}
};
};
export const config = {
...plugin,
configs: {
...createConfig("stylistic", getStylisticRules),
...createConfig("correctness", getCorrectnessRules),
...createConfig("recommended", severity => ({
...getStylisticRules(severity),
...getCorrectnessRules(severity)
}))
}
};
//# sourceMappingURL=config.js.map