eslint-config-taygo

0.0.1 • Public • Published

eslint-config-taygo

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.

Installation

To use this package, install it via npm:

npm install eslint-config-taygo --save-dev

Usage

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.

JavaScript Config

To use the JavaScript configuration:

// eslint.config.mjs
import { configs } from 'eslint-config-taygo';

export default [
  configs.javascript,
];

TypeScript Config

To use the TypeScript configuration:

// eslint.config.mjs
import { configs } from 'eslint-config-taygo';

export default [
  configs.typescript,
];

React Config (JavaScript)

To use the React configuration for JavaScript:

// eslint.config.mjs
import { configs } from 'eslint-config-taygo';

export default [
  configs.react,
];

React Config (TypeScript)

To use the React configuration for TypeScript:

// eslint.config.mjs
import { configs } from 'eslint-config-taygo';

export default [
  configs.reactTypescript,
];

Node.js Config (JavaScript)

To use the Node.js configuration for JavaScript:

// eslint.config.mjs
import { configs } from 'eslint-config-taygo';

export default [
  configs.node,
];

Node.js Config (TypeScript)

To use the Node.js configuration for TypeScript:

// eslint.config.mjs
import { configs } from 'eslint-config-taygo';

export default [
  configs.nodeTypescript,
];

Customizing Rules

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

Available Configurations

  • JavaScript: configs.javascript
  • TypeScript: configs.typescript
  • React (JavaScript): configs.react
  • React (TypeScript): configs.reactTypescript
  • Node.js (JavaScript): configs.node
  • Node.js (TypeScript): configs.nodeTypescript

Exported Rules

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

Summary of Packages Used

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.

Notes

  • 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.

Readme

Keywords

none

Package Sidebar

Install

npm i eslint-config-taygo

Weekly Downloads

37

Version

0.0.1

License

none

Unpacked Size

6.09 kB

Total Files

5

Last publish

Collaborators

  • brijesh-taygo