Additional ESLint rules and ESLint configurations for @mysticatea.
npm install --save-dev eslint @eslint-community/eslint-plugin-mysticatea
- Node.js ^12.22.0 || ^14.17.0 || >=16.0.0or newer versions.
- ESLint ^6.6.0 || ^7.0.0 || ^8.0.0or newer versions.
Write in your ESLint configurations: http://eslint.org/docs/user-guide/configuring#using-the-configuration-from-a-plugin
- plugin:@eslint-community/mysticatea/es2022... Basic configuration for ES2022.
- plugin:@eslint-community/mysticatea/es2021... Basic configuration for ES2021.
- plugin:@eslint-community/mysticatea/es2020... Basic configuration for ES2020.
- plugin:@eslint-community/mysticatea/es2019... Basic configuration for ES2019.
- plugin:@eslint-community/mysticatea/es2018... Basic configuration for ES2018.
- plugin:@eslint-community/mysticatea/es2017... Basic configuration for ES2017.
- plugin:@eslint-community/mysticatea/es2016... Basic configuration for ES2016.
- plugin:@eslint-community/mysticatea/es2015... Basic configuration for ES2015.
- plugin:@eslint-community/mysticatea/es5... Basic configuration for ES5.
- plugin:@eslint-community/mysticatea/+modules... Additional configuration for ES modules.
- plugin:@eslint-community/mysticatea/+browser... Additional configuration for browser environment.
- plugin:@eslint-community/mysticatea/+node... Additional configuration for Node.js environment.
- plugin:@eslint-community/mysticatea/+eslint-plugin... Additional configuration for ESLint plugins. This includes- plugin:@eslint-community/mysticatea/+nodesetting.
The main configurations plugin:@eslint-community/mysticatea/es* does:
- detect bug-like code by ESLint rules.
- enforce whitespace style by Prettier.
- handle the .tsfiles as TypeScript then check bytypescript-eslint-parserandeslint-plugin-typescript.
- handle the .vuefiles as Vue.js SFC then check byvue-eslint-parserandeslint-plugin-vue.
- handle the files in test/testsdirectory asmocha's test code.
- handle the files in scriptsdirectory as Node.js environment.
- handle the .eslintrc.jsfile as a Node.js script.
- handle the webpack.config.jsfile as a Node.js script.
- handle the rollup.config.jsfile as an ES module.
You can use combination of a main configuration and some additional configurations. For examples:
{
    "extends": [
        "plugin:@eslint-community/mysticatea/es2015",
        "plugin:@eslint-community/mysticatea/+node"
    ]
}It handles
.jsfiles as scripts and.mjsfiles as modules.
{
    "extends": [
        "plugin:@eslint-community/mysticatea/es2015",
        "plugin:@eslint-community/mysticatea/+browser"
    ]
}{
    "extends": [
        "plugin:@eslint-community/mysticatea/es2015",
        "plugin:@eslint-community/mysticatea/+modules",
        "plugin:@eslint-community/mysticatea/+browser"
    ]
}{
    "extends": [
        "plugin:@eslint-community/mysticatea/es2015",
        "plugin:@eslint-community/mysticatea/+eslint-plugin"
    ]
}This plugin has some original rules and foreign rules.
- @eslint-community/mysticatea/arrow-parens enforces parens of argument lists (excludes too redundant parens) (fixable).
- @eslint-community/mysticatea/block-scoped-var handles variables which are declared by vardeclaration as block-scoped. It disallows redeclarations, uses from outside of the scope, shadowing.
- @eslint-community/mysticatea/no-instanceof-array disallows 'instanceof' for Array (fixable).
- @eslint-community/mysticatea/no-instanceof-wrapper disallows 'instanceof' for wrapper objects (fixable).
- @eslint-community/mysticatea/no-literal-call disallows a call of a literal.
- @eslint-community/mysticatea/no-this-in-static disallows this/superin static methods.
- @eslint-community/mysticatea/no-use-ignored-vars disallows a use of ignored variables.
- @eslint-community/mysticatea/no-useless-rest-spread disallows unnecessary rest/spread operators (fixable).
- @eslint-community/mysticatea/prefer-for-of requires for-ofstatements instead ofArray#forEachor something like (fixable).
- All @eslint-community/mysticatea/eslint-comments/*rules are imported from eslint-plugin-eslint-comments.
- All @eslint-community/mysticatea/eslint-plugin/*rules are imported from eslint-plugin-eslint-plugin.
- All @eslint-community/mysticatea/node/*rules are imported from eslint-plugin-node.
- All @eslint-community/mysticatea/ts/*rules are imported from eslint-plugin-typescript.
- All @eslint-community/mysticatea/vue/*rules are imported from eslint-plugin-vue.
- The @eslint-community/mysticatea/prettierrule is imported from eslint-plugin-prettier.
Q: Why don't you use those plugins directly?
> A: The combination with shareable configs and plugins has some problems because shareable configs were not designed to be used with plugins. @nzakas illustrated a way to use plugins as shareable configs together with other plugins in the discussion eslint/eslint#3458. This is the way.
This plugin follows semantic versioning and ESLint's Semantic Versioning Policy.
Welcome contributing!
Please use GitHub's Issues/PRs.
- npm testruns tests and measures coverage.
- npm run cleanremoves the coverage result of- npm testcommand.
- npm run coverageshows the coverage result of- npm testcommand.
- npm run updateupdates auto-generated files.
- npm run watchruns tests and measures coverage when source code are changed.