Socket
Socket
Sign inDemoInstall

@eslint/eslintrc

Package Overview
Dependencies
26
Maintainers
2
Versions
42
Alerts
File Explorer

Advanced tools

Install Socket

Protect your apps from supply chain attacks

Install

@eslint/eslintrc

The legacy ESLintRC config file format for ESLint

    2.1.4
    GitHub
    npm

Version published
Maintainers
2
Weekly downloads
32,365,642
increased by5.13%

Weekly downloads

Package description

What is @eslint/eslintrc?

The @eslint/eslintrc package is a utility for working with ESLint configuration files. It provides tools to load and parse ESLint configuration files, resolve extends chains, and manage configuration cascading and hierarchy.

What are @eslint/eslintrc's main functionalities?

Loading ESLint Configuration

This feature allows you to load an ESLint configuration file using the ConfigArrayFactory class. The loaded configuration can then be used to configure the ESLint engine.

const { ConfigArrayFactory } = require('@eslint/eslintrc');
const factory = new ConfigArrayFactory();
const configArray = factory.loadFile('.eslintrc.js');

Parsing Configuration Files

This feature is used to parse ESLint configuration files directly. It is part of the legacy API and allows for direct interaction with configuration files.

const { Legacy: { ConfigFile } } = require('@eslint/eslintrc');
const config = ConfigFile.load('.eslintrc');

Resolving Extends Chains

This feature resolves the 'extends' chains in ESLint configuration files, allowing you to get the final configuration that applies to a specific file, taking into account all the extended configurations.

const { CascadingConfigArrayFactory } = require('@eslint/eslintrc');
const factory = new CascadingConfigArrayFactory();
const configArray = factory.getConfigArrayForFile('some-file.js');

Other packages similar to @eslint/eslintrc

Changelog

Source

2.1.4 (2023-11-27)

Bug Fixes

  • Use original plugin from disk in FlatCompat (#137) (1c4cf6a)

Readme

Source

ESLintRC Library

This repository contains the legacy ESLintRC configuration file format for ESLint. This package is not intended for use outside of the ESLint ecosystem. It is ESLint-specific and not intended for use in other programs.

Note: This package is frozen except for critical bug fixes as ESLint moves to a new config system.

Installation

You can install the package as follows:

npm install @eslint/eslintrc --save-dev

# or

yarn add @eslint/eslintrc -D

Usage (ESM)

The primary class in this package is FlatCompat, which is a utility to translate ESLintRC-style configs into flat configs. Here's how you use it inside of your eslint.config.js file:

import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import path from "path";
import { fileURLToPath } from "url";

// mimic CommonJS variables -- not needed if using CommonJS
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const compat = new FlatCompat({
    baseDirectory: __dirname,                  // optional; default: process.cwd()
    resolvePluginsRelativeTo: __dirname,       // optional
    recommendedConfig: js.configs.recommended, // optional
    allConfig: js.configs.all,                 // optional
});

export default [

    // mimic ESLintRC-style extends
    ...compat.extends("standard", "example"),

    // mimic environments
    ...compat.env({
        es2020: true,
        node: true
    }),

    // mimic plugins
    ...compat.plugins("airbnb", "react"),

    // translate an entire config
    ...compat.config({
        plugins: ["airbnb", "react"],
        extends: "standard",
        env: {
            es2020: true,
            node: true
        },
        rules: {
            semi: "error"
        }
    })
];

Usage (CommonJS)

Using FlatCompat in CommonJS files is similar to ESM, but you'll use require() and module.exports instead of import and export. Here's how you use it inside of your eslint.config.js CommonJS file:

const { FlatCompat } = require("@eslint/eslintrc");
const js = require("@eslint/js");

const compat = new FlatCompat({
    baseDirectory: __dirname,                  // optional; default: process.cwd()
    resolvePluginsRelativeTo: __dirname,       // optional
    recommendedConfig: js.configs.recommended, // optional
    allConfig: js.configs.all,                 // optional
});

module.exports = [

    // mimic ESLintRC-style extends
    ...compat.extends("standard", "example"),

    // mimic environments
    ...compat.env({
        es2020: true,
        node: true
    }),

    // mimic plugins
    ...compat.plugins("airbnb", "react"),

    // translate an entire config
    ...compat.config({
        plugins: ["airbnb", "react"],
        extends: "standard",
        env: {
            es2020: true,
            node: true
        },
        rules: {
            semi: "error"
        }
    })
];

License

MIT License

Keywords

FAQs

Last updated on 01 Dec 2023

Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc