All Projects → mysticatea → Eslint Plugin

mysticatea / Eslint Plugin

Licence: mit
ESLint configurations and additional rules for me

Programming Languages

javascript
184084 projects - #8 most used programming language
ecmascript
72 projects

Projects that are alternatives of or similar to Eslint Plugin

Eslint Plugin Node
Additional ESLint's rules for Node.js
Stars: ✭ 740 (+3794.74%)
Mutual labels:  eslint, eslint-plugin, static-code-analysis
Eslint Plugin Vue
Official ESLint plugin for Vue.js
Stars: ✭ 3,592 (+18805.26%)
Mutual labels:  eslint, eslint-plugin
Xo
❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults
Stars: ✭ 6,277 (+32936.84%)
Mutual labels:  eslint, eslint-plugin
Eslint
Find and fix problems in your JavaScript code.
Stars: ✭ 19,665 (+103400%)
Mutual labels:  eslint, static-code-analysis
Awesome Standard
Documenting the explosion of packages in the standard ecosystem!
Stars: ✭ 300 (+1478.95%)
Mutual labels:  eslint, static-code-analysis
Eslint Config Auto
Automatically configure ESLint based on project dependencies
Stars: ✭ 302 (+1489.47%)
Mutual labels:  eslint, eslint-plugin
Eslint Plugin Typescript
TypeScript plugin for ESLint
Stars: ✭ 342 (+1700%)
Mutual labels:  eslint, eslint-plugin
eslint-plugin-test-selectors
Enforces that data-test-id attributes are added to interactive DOM elements (JSX) to help with UI testing. JSX only.
Stars: ✭ 19 (+0%)
Mutual labels:  eslint, eslint-plugin
Eslint Plugin Babel
An ESlint rule plugin companion to babel-eslint
Stars: ✭ 391 (+1957.89%)
Mutual labels:  eslint, eslint-plugin
Eslint Plugin Jest
ESLint plugin for Jest
Stars: ✭ 699 (+3578.95%)
Mutual labels:  eslint, eslint-plugin
Eslint Config Standard React
ESLint Shareable Config for React/JSX support in JavaScript Standard Style
Stars: ✭ 416 (+2089.47%)
Mutual labels:  eslint, static-code-analysis
Eslint Plugin Functional
ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.
Stars: ✭ 282 (+1384.21%)
Mutual labels:  eslint, eslint-plugin
Standard
🌟 JavaScript Style Guide, with linter & automatic code fixer
Stars: ✭ 26,433 (+139021.05%)
Mutual labels:  eslint, static-code-analysis
Eslint Plugin Import
ESLint plugin with rules that help validate proper imports.
Stars: ✭ 3,722 (+19489.47%)
Mutual labels:  eslint-plugin, eslint
Eslint Plugin Proper Arrows
ESLint rules to ensure proper arrow function definitions
Stars: ✭ 271 (+1326.32%)
Mutual labels:  eslint, eslint-plugin
Eslint Plugin Html
An ESLint plugin to extract and lint scripts from HTML files.
Stars: ✭ 333 (+1652.63%)
Mutual labels:  eslint, eslint-plugin
eslint-config-get-off-my-lawn
A highly opinionated, sharable config of ESLint rules to produce beautiful, readable JavaScript.
Stars: ✭ 44 (+131.58%)
Mutual labels:  eslint, eslint-plugin
eslint-plugin-ember-best-practices
Static analysis tools for enforcing best practices in Ember
Stars: ✭ 77 (+305.26%)
Mutual labels:  eslint, eslint-plugin
Eslint Plugin Testing Library
ESLint plugin to follow best practices and anticipate common mistakes when writing tests with Testing Library
Stars: ✭ 384 (+1921.05%)
Mutual labels:  eslint, eslint-plugin
Eslint Plugin Sonarjs
SonarJS rules for ESLint
Stars: ✭ 458 (+2310.53%)
Mutual labels:  eslint, eslint-plugin

@mysticatea/eslint-plugin

npm version Downloads/month Build Status codecov Dependency Status

Additional ESLint rules and ESLint configurations for me.

💿 Installation

npm install --save-dev eslint @mysticatea/eslint-plugin

Requirements

  • Node.js ^8.10.0 or newer versions.
  • ESLint ^6.3.0 or newer versions.

📖 Usage

Write in your ESLint configurations: http://eslint.org/docs/user-guide/configuring#using-the-configuration-from-a-plugin

Configs

  • plugin:@mysticatea/es2020 ... Basic configuration for ES2020.
  • plugin:@mysticatea/es2019 ... Basic configuration for ES2019.
  • plugin:@mysticatea/es2018 ... Basic configuration for ES2018.
  • plugin:@mysticatea/es2017 ... Basic configuration for ES2017.
  • plugin:@mysticatea/es2016 ... Basic configuration for ES2016.
  • plugin:@mysticatea/es2015 ... Basic configuration for ES2015.
  • plugin:@mysticatea/es5 ... Basic configuration for ES5.
  • plugin:@mysticatea/+modules ... Additional configuration for ES modules.
  • plugin:@mysticatea/+browser ... Additional configuration for browser environment.
  • plugin:@mysticatea/+node ... Additional configuration for Node.js environment.
  • plugin:@mysticatea/+eslint-plugin ... Additional configuration for ESLint plugins. This includes plugin:mysticatea/+node setting.

Details

The main configurations plugin:@mysticatea/es* does:

  • detect bug-like code by ESLint rules.
  • enforce whitespace style by Prettier.
  • handle the .ts files as TypeScript then check by typescript-eslint-parser and eslint-plugin-typescript.
  • handle the .vue files as Vue.js SFC then check by vue-eslint-parser and eslint-plugin-vue.
  • handle the files in test/tests directory as mocha's test code.
  • handle the files in scripts directory as Node.js environment.
  • handle the .eslintrc.js file as a Node.js script.
  • handle the webpack.config.js file as a Node.js script.
  • handle the rollup.config.js file as an ES module.

You can use combination of a main configuration and some additional configurations. For examples:

For Node.js
{
    "extends": [
        "plugin:@mysticatea/es2015",
        "plugin:@mysticatea/+node"
    ]
}

It handles .js files as scripts and .mjs files as modules.

For Browsers
{
    "extends": [
        "plugin:@mysticatea/es2015",
        "plugin:@mysticatea/+browser"
    ]
}
For Browsers with ES modules
{
    "extends": [
        "plugin:@mysticatea/es2015",
        "plugin:@mysticatea/+modules",
        "plugin:@mysticatea/+browser"
    ]
}
For ESLint plugins
{
    "extends": [
        "plugin:@mysticatea/es2015",
        "plugin:@mysticatea/+eslint-plugin"
    ]
}

Rules

This plugin has some original rules and foreign rules.

Original rules

Foreign rules

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.

🚥 Semantic Versioning Policy

This plugin follows semantic versioning and ESLint's Semantic Versioning Policy.

📰 Changelog

❤️ Contributing

Welcome contributing!

Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run clean removes the coverage result of npm test command.
  • npm run coverage shows the coverage result of npm test command.
  • npm run update updates auto-generated files.
  • npm run watch runs tests and measures coverage when source code are changed.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].