UNPKG

@shayanthenerd/eslint-config

Version:

A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style

58 lines (57 loc) 2.01 kB
import { isEnabled } from "../utils/isEnabled.mjs"; import { defaultOptions } from "../helpers/options/defaultOptions.mjs"; //#region src/rules/tailwind.ts const nonLogicalTailwindUtilityPatterns = [ "-?top(?:-.+)?", "-?bottom(?:-.+)?", "pt-.+", "pb-.+", "-?mt-.+", "-?mb-.+", "border-t(?:-.+)?", "border-b(?:-.+)?", "w-.+", "min-w-.+", "max-w-.+", "h-.+", "min-h-.+", "max-h-.+", "size-.+", "overflow-x-.+", "overflow-y-.+", "overscroll-x-.+", "overscroll-y-.+", "scroll-pt-.+", "scroll-pb-.+", "-?scroll-mt-.+", "-?scroll-mb-.+" ].map((pattern) => { return `^(?:\\S+:)*(?:!${pattern}|${pattern}!?)$`; }); function getTailwindRules(options) { const { tailwind, stylistic } = options.configs; const { multilineSort, ignoredUnknownClasses: userIgnoredUnknownClasses } = isEnabled(tailwind) ? tailwind : defaultOptions.configs.tailwind; const { indent, maxLineLength } = isEnabled(stylistic) ? stylistic : defaultOptions.configs.stylistic; const isTailwindV4 = isEnabled(tailwind) && tailwind.entryPoint; return { "better-tailwindcss/enforce-canonical-classes": "warn", "better-tailwindcss/enforce-consistent-class-order": "warn", "better-tailwindcss/enforce-consistent-line-wrapping": multilineSort && isEnabled(stylistic) ? ["warn", { indent, tabWidth: indent, strictness: "loose", preferSingleLine: true, printWidth: maxLineLength }] : "off", "better-tailwindcss/enforce-consistent-variant-order": "warn", "better-tailwindcss/enforce-logical-properties": ["warn", { ignore: nonLogicalTailwindUtilityPatterns }], "better-tailwindcss/no-concatenated-classes": "error", "better-tailwindcss/no-conflicting-classes": "error", "better-tailwindcss/no-deprecated-classes": "error", "better-tailwindcss/no-duplicate-classes": "error", "better-tailwindcss/no-unknown-classes": isTailwindV4 ? ["warn", { ignore: userIgnoredUnknownClasses }] : "off", "better-tailwindcss/no-unnecessary-whitespace": "warn" }; } //#endregion export { getTailwindRules };