UNPKG

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
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 || {} } }]; }