@nivalis/eslint-config
Version:
ESLint shareable flat config used at Nivalis Studio
44 lines (43 loc) • 1.87 kB
JavaScript
import { GLOB_REACT } from "./index.js";
import { defineConfig } from "eslint/config";
import path from "node:path";
import { existsSync } from "node:fs";
import tailwind from "eslint-plugin-better-tailwindcss";
//#region src/configs/tailwindcss.ts
const tailwindcss = (options) => {
if (options === false) return defineConfig([]);
const configPath = path.join(process.cwd(), options?.configPath ?? "./tailwind.config.ts");
if (!existsSync(configPath)) throw new Error(`Tailwind config not found. The file ${configPath} does not exist. Please check your configuration.`);
const cssGlobalPath = path.join(process.cwd(), options?.cssGlobalPath ?? "./src/styles/globals.css");
if (!existsSync(cssGlobalPath)) throw new Error(`Tailwind css globals files not found. The file ${cssGlobalPath} does not exist. Please check your configuration.`);
return defineConfig([{
name: "nivalis/tailwindcss",
files: [GLOB_REACT],
plugins: { "better-tailwindcss": tailwind },
settings: { "better-tailwindcss": {
callees: [
"cn",
"classnames",
"clsx",
"cva"
],
entryPoint: cssGlobalPath,
tailwindConfig: configPath
} },
rules: {
"better-tailwindcss/enforce-consistent-class-order": "off",
"better-tailwindcss/enforce-consistent-important-position": "off",
"better-tailwindcss/enforce-consistent-line-wrapping": "off",
"better-tailwindcss/enforce-consistent-variable-syntax": "error",
"better-tailwindcss/enforce-shorthand-classes": "warn",
"better-tailwindcss/no-conflicting-classes": "error",
"better-tailwindcss/no-deprecated-classes": "error",
"better-tailwindcss/no-duplicate-classes": "error",
"better-tailwindcss/no-restricted-classes": "error",
"better-tailwindcss/no-unnecessary-whitespace": "warn",
"better-tailwindcss/no-unregistered-classes": "off"
}
}]);
};
//#endregion
export { tailwindcss };