uba-eslint-config
v1.4.0
Published
ESLint 9 configuration with TypeScript, React, and comprehensive plugin support
Maintainers
Readme
uba-eslint-config
A comprehensive ESLint 9 configuration with TypeScript, React, and extensive plugin support.
Features
- ESLint 9 with flat config
- TypeScript support (can be disabled via config options)
- React with hooks and accessibility rules
- Testing: Vitest and Cypress support
- Code Quality: Unicorn, Promise, Import, and more
- Sorting & Formatting: Perfectionist for consistent code organization
- GraphQL, TanStack Query, TanStack Router, and Storybook support
Included Plugins
eslint-plugin-import(order rules disabled in favor of perfectionist)eslint-plugin-canonical(import alias rule only)eslint-plugin-check-fileeslint-plugin-function-nameeslint-plugin-promiseeslint-plugin-unicorneslint-plugin-cypresswitheslint-plugin-chai-friendly@vitest/eslint-plugineslint-plugin-jsx-a11yeslint-plugin-react&eslint-plugin-react-hookseslint-plugin-storybookeslint-plugin-tailwindcss@graphql-eslint/eslint-plugin@tanstack/eslint-plugin-query@tanstack/eslint-plugin-routereslint-plugin-perfectionist
Installation
pnpm add -D uba-eslint-configUsage
Basic Usage
import { ubaEslintConfig } from "uba-eslint-config";
export default [...ubaEslintConfig];Custom Configuration
import { generateEslintConfig } from "uba-eslint-config";
export default generateEslintConfig({
appType: "fullstack", // or "backendOnly"
shouldEnableTypescript: true,
importCycleCheckMode: "off", // "off" or "on" (CI only)
});Fine-grained Control
import { generateEslintConfigByFeatures } from "uba-eslint-config";
export default generateEslintConfigByFeatures({
shouldEnableTypescript: true,
shouldEnableReact: true,
shouldEnableA11y: true,
shouldEnableCypress: false,
shouldEnableVitest: true,
shouldEnableGraphql: false,
shouldEnableStorybook: false,
shouldEnableQuery: true,
shouldEnableRouter: true,
shouldEnableNodeGlobals: true,
shouldEnableBrowserGlobals: true,
importCycleCheckMode: "off",
});Prettier Configuration
This package also exports Prettier configurations:
import { ubaPrettierConfig } from "uba-eslint-config";
export default ubaPrettierConfig;Or generate custom config:
import { generatePrettierConfig } from "uba-eslint-config";
export default generatePrettierConfig({
appType: "fullstack", // or "backendOnly"
});Peer Dependencies
Make sure to install these plugins in your project:
prettier-plugin-packagejsonprettier-plugin-tailwindcss(if using Tailwind CSS)
License
MIT
