This package provides a set of extensible shared ESLint configurations using the new Flat Config format introduced in ESLint. It supports JavaScript, TypeScript, React, and Node.js projects.
To use this package, install it via npm:
npm install eslint-config-taygo --save-dev
Since this package uses the Flat Config format, you need to create an eslint.config.mjs
file in the root of your project and import the desired configuration.
To use the JavaScript configuration:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
configs.javascript,
];
To use the TypeScript configuration:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
configs.typescript,
];
To use the React configuration for JavaScript:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
configs.react,
];
To use the React configuration for TypeScript:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
configs.reactTypescript,
];
To use the Node.js configuration for JavaScript:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
configs.node,
];
To use the Node.js configuration for TypeScript:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
configs.nodeTypescript,
];
If you want to customize or override specific rules, you can extend the configuration like this:
// eslint.config.mjs
import { configs } from 'eslint-config-taygo';
export default [
{
...configs.javascript,
rules: {
...configs.javascript.rules,
'no-console': 'warn', // Example: Override the no-console rule
},
},
];
-
JavaScript:
configs.javascript
-
TypeScript:
configs.typescript
-
React (JavaScript):
configs.react
-
React (TypeScript):
configs.reactTypescript
-
Node.js (JavaScript):
configs.node
-
Node.js (TypeScript):
configs.nodeTypescript
If you need access to the individual rules for advanced use cases, you can import them like this:
import { rules } from 'eslint-config-taygo';
console.log(rules.javascript); // Logs JavaScript-specific rules
console.log(rules.typescript); // Logs TypeScript-specific rules
console.log(rules.react); // Logs React-specific rules
console.log(rules.reactTypescript); // Logs React+TypeScript-specific rules
console.log(rules.node); // Logs Node.js-specific rules
console.log(rules.nodeTypescript); // Logs Node.js+TypeScript-specific rules
This configuration leverages the following ESLint plugins and packages:
- Core ESLint: Provides the base linting functionality.
-
eslint-plugin-react
: Adds linting rules for React projects. -
eslint-plugin-node
: Adds linting rules for Node.js projects. -
eslint-plugin-unicorn
: Enforces better practices and modern JavaScript features. -
eslint-plugin-sonarjs
: Detects bugs and code smells. -
eslint-plugin-perfectionist
: Helps enforce consistent code structure and ordering. -
@typescript-eslint/eslint-plugin
: Provides TypeScript-specific linting rules. -
@typescript-eslint/parser
: Parses TypeScript code for ESLint. -
globals
: Provides a list of global variables for different environments.
- This package is designed to work with ESLint's Flat Config format. Ensure you are using a compatible version of ESLint.
- For React and Node.js configurations, make sure you have the necessary plugins installed (e.g.,
eslint-plugin-react
,eslint-plugin-node
).
For more details, refer to the ESLint Flat Config documentation.