Files
react-native-devtools-frontend/node_modules/eslint-plugin-rulesdir
Tim van der Lippe 835724b419 Add eslint-plugin-rulesdir to node_modules
This plugin needs to be used to write our own custom ESLint plugins that
live in our repository. It replaces the `rulesdir` CLI option, as the
solution of putting it in `.eslintrc.js` is compatible with code editor
plugins.

I also discovered that we were incorrectly running clang-format on
`node_modules`, as I recently fixed the PRESUBMIT. To make sure that
doens't happen again, add a `.clang-format` that disables the formatting
in that folder.

DISABLE_THIRD_PARTY_CHECK=Add new node_module

Bug: 1060123
Change-Id: Ib2c0d23f499604deeea51cb06192bce3a7aa89af
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2096449
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
2020-03-10 17:20:54 +00:00
..

eslint-plugin-rulesdir

Allows a local directory containing ESLint rules directory to be easily used. This is a substitute for the --rulesdir option that can be used without a command-line flag.

Experimental: This plugin is currently a proof-of-concept. Its API is likely to change in the future.

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-rulesdir:

$ npm install eslint-plugin-rulesdir --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-rulesdir globally.

Usage

To use this plugin, you must load it manually first and set its RULES_DIR property to a path. The path is resolved from the current working directory, and indicates where you would like the plugin to load your rules from. This is easiest if you use a JavaScript config file (.eslintrc.js), and use a local installation of ESLint.

// .eslintrc.js
const rulesDirPlugin = require('eslint-plugin-rulesdir');
rulesDirPlugin.RULES_DIR = 'tools/eslint-rules'; // (an example folder where your rules might be stored)

Then you should add rulesdir to the plugins section of your .eslintrc.js file.

{
  plugins: [
    'rulesdir'
  ]
}

Finally, you can configure your local rules, prefixed with rulesdir/.

{
  rules: {
    //
    'rulesdir/my-internal-foo-rule': 'error',
    'rulesdir/my-internal-bar-rule': ['warn', 2]
  }
}

All of the rules from your configured rules directory will be available. In this example, we assumed there were rule files in tools/eslint-rules/my-internal-foo-rule.js and tools/eslint-rules/my-internal-bar-rule.js.

Prior Art

License

MIT