@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
35 lines (33 loc) • 1.57 kB
JavaScript
import { isEnabled } from "../utils/isEnabled.js";
import { defaultOptions } from "../utils/options/defaultOptions.js";
//#region src/rules/tailwind.ts
function getTailwindRules(options) {
const { tailwind, stylistic } = options.configs;
const { multilineSort, ignoredUnregisteredClasses: userIgnoredUnregisteredClasses } = isEnabled(tailwind) ? tailwind : defaultOptions.configs.tailwind;
const { indent, useTabs, maxLineLength } = isEnabled(stylistic) ? stylistic : defaultOptions.configs.stylistic;
const isTailwindV4 = isEnabled(tailwind) && tailwind.entryPoint;
const tailwindRules = {
"@stylistic/max-len": "off",
"css/no-duplicate-imports": "off",
"better-tailwindcss/no-duplicate-classes": "error",
"better-tailwindcss/no-deprecated-classes": "error",
"better-tailwindcss/no-conflicting-classes": "error",
"better-tailwindcss/enforce-shorthand-classes": "warn",
"better-tailwindcss/no-unnecessary-whitespace": "warn",
"better-tailwindcss/enforce-consistent-class-order": "warn",
"better-tailwindcss/enforce-consistent-variable-syntax": "warn",
"better-tailwindcss/enforce-consistent-important-position": "warn",
"better-tailwindcss/no-unregistered-classes": [isTailwindV4 ? "warn" : "off", {
detectComponentClasses: true,
ignore: userIgnoredUnregisteredClasses
}],
"better-tailwindcss/enforce-consistent-line-wrapping": [multilineSort ? "warn" : "off", {
preferSingleLine: true,
printWidth: maxLineLength,
indent: useTabs ? "tab" : indent
}]
};
return tailwindRules;
}
//#endregion
export { getTailwindRules };