eslint-config-xaxa
Version:
The ultimate ESLint config - successor to Airbnb Config. Built on Anthony Fu's ESLint config, Airbnb, ESLint Stylistic, Perfectionist, React, TypeScript, Astro, JSDocs, Prettier, Node.js, Unicorns, Promises, and more.
28 lines (27 loc) • 1.12 kB
JavaScript
import { ensurePackages, GLOB_JSX, GLOB_TSX, interopDefault } from "@antfu/eslint-config";
export async function tailwindcss(options) {
await ensurePackages(["eslint-plugin-tailwindcss"]);
const tailwindcssEslint = await interopDefault(import("eslint-plugin-tailwindcss"));
const pluginTailwind = tailwindcssEslint?.configs?.["flat/recommended"]?.[0]?.plugins?.tailwindcss;
if (!pluginTailwind) {
throw new Error("[eslint-config-xaxa]: Failed to load tailwindcss plugin properly; it is a weird one");
}
return [{
files: [GLOB_JSX, GLOB_TSX],
name: "xaxa/tailwind/rules",
plugins: { tailwindcss: pluginTailwind },
rules: {
"tailwindcss/classnames-order": "error",
"tailwindcss/enforces-negative-arbitrary-values": "warn",
"tailwindcss/enforces-shorthand": "warn",
"tailwindcss/migration-from-tailwind-2": "off",
"tailwindcss/no-arbitrary-value": "off",
"tailwindcss/no-contradicting-classname": "error",
"tailwindcss/no-custom-classname": "warn",
"tailwindcss/no-unnecessary-arbitrary-value": "warn"
}
}, {
name: "xaxa/tailwind/overrides",
rules: { ...options || {} }
}];
}