eslint-plugin-no-use-extend-native
ESLint plugin to prevent use of extended native objects
Uses Sindre Sorhus's proto-props
Install
First, install ESLint via
npm install --save-dev eslint
Then install eslint-plugin-no-use-extend-native
npm install --save-dev eslint-plugin-no-use-extend-native
Usage
In your .eslintrc
file add the plugin as such:
plugins: 'no-use-extend-native'
To modify the single rule, no-use-extend-native
, add the rule to your .eslintrc.*
as such:
plugins: 'no-use-extend-native' rules: 'no-use-extend-native/no-use-extend-native': 1
The default value is 2
.
If you want the default, you can also just use the following instead of all of the above:
extends: 'plugin:no-use-extend-native/recommended'
With this plugin enabled, ESLint will find issues with using extended native objects:
const colors = ;console;// => ESLint will give an error stating 'Avoid using extended native objects' ;// => ESLint will give an error stating 'Avoid using extended native objects'
More examples can be seen in the tests.
Usage with no-extend-native
ESLint's no-extend-native
rule verifies code is not modifying a native prototype. e.g., with the no-extend-native
rule enabled, the following lines are each considered incorrect:
Stringprototype { return this; };Object;
no-use-extend-native
verifies code is not using a non-native prototype. e.g., with the no-use-extend-native
plugin enabled, the following line is considered incorrect:
"50bda47b09923e045759db8e8dd01a0bacd97370" === "50bda47";
The no-use-extend-native
plugin is designed to work with ESLint's no-extend-native
rule. no-extend-native
ensures that native prototypes aren't extended, and should a third party library extend them, no-use-extend-native
ensures those changes aren't depended upon.
LICENSE
MIT © Dustin Specker