Skip to content

eslint-plugin

Build npm version

@rnx-kit/eslint-plugin is a set of configurations and rules that can be used as is, or extended in your own ESLint config.

Note that this plugin requires the new ESLint configuration format. If you still rely on the previous format, use version 0.5.x instead.

yarn add @rnx-kit/eslint-plugin --dev

or if you’re using npm:

npm add --save-dev @rnx-kit/eslint-plugin

This ESLint plugin exports multiple configurations. For instance, to use the recommended configuration, you can re-export it in your flat config like below:

module.exports = require("@rnx-kit/eslint-plugin/recommended");

Alternatively, if you want to add customizations:

const rnx = require("@rnx-kit/eslint-plugin");
module.exports = [
...rnx.configs.recommended,
{
rules: {
"@rnx-kit/no-const-enum": "error",
"@rnx-kit/no-export-all": "error",
// Mores rules ...
},
},
];

If you’re just interested in the rules, you can use it as a plugin and enable the rules you’re interested in:

module.exports = [
{
plugins: {
"@rnx-kit": require("@rnx-kit/eslint-plugin"),
},
rules: {
"@rnx-kit/no-const-enum": "error",
"@rnx-kit/no-export-all": "error",
// Mores rules ...
},
},
];
  • ✓: Enabled with @rnx-kit/eslint-plugin/recommended
  • 🔧: Fixable with --fix
✓ 🔧 Rule Description
✓ @rnx-kit/no-const-enum disallow const enum (why is it bad?)
✓ 🔧 @rnx-kit/no-export-all disallow export * (why is it bad?)
✓ @rnx-kit/no-foreach-with-captured-variables disallow forEach with outside variables; JavaScript is not efficient when it comes to using variables defined outside of its scope, and repeatedly calling that function can lead to performance issues. By using a for...of loop, you can avoid these performance pitfalls and also it is easier to debug.
@rnx-kit/restricted-asset-imports restrict asset imports (e.g., file names must be lowercased, exist on disk)
@rnx-kit/type-definitions-only disallow anything but type definitions; useful for types only files or packages