Skip to content

iliubinskii/eslint-plugin-misc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESLint plugin

Table of contents

Overview

A collection of ESLint rules for JavaScript and TypeScript files.

Installation

npm install --save-dev eslint-plugin-misc
// .eslintrc.js
module.exports = {
  extends: "plugin:misc/all",
  parser: "@typescript-eslint/parser",
  plugins: ["misc"]
};

Configs

  • plugin:misc/all — All rules.
  • plugin:misc/recommended — Recommended rules.
  • plugin:misc/core — Core rules.
  • plugin:misc/typescript — Rules for typescript files.

Rules

Synonyms

You can use the same rule several times by adding synonym:

// .eslintrc.synonyms.cjs
module.exports = ["misc/wrap/class-methods-use-this", "misc/wrap/no-shadow"];

// .eslintrc.js
module.exports = {
  rules: {
    // Same as ESLint core rule, but suppresses warnings for methods that have "this" parameter.
    "misc/wrap/class-methods-use-this": [
      "error",
      {
        plugin: "eslint",
        rule: "class-methods-use-this",
        skip: "FunctionExpression[params.0.name=this]"
      }
    ],
    // Same as typescript-eslint rule, but suppresses warnings for enums.
    "misc/wrap/no-shadow": [
      "error",
      {
        plugin: "@typescript-eslint/eslint-plugin",
        rule: "no-shadow",
        skip: "TSEnumDeclaration *"
      }
    ]
  }
};

Custom checks

Many custom checks can be created without writing full-fledged ESLint plugin. Use the rules below to create custom checks or adapt existing third-party rules:

If you want to apply one rule several times (e.g. restrict several syntaxes), use rule synonyms.

Planned rules

  • boolean-in-boolean-context — Require strict boolean type in boolean contexts like x && y or !x.
  • consistent-import-as — Require that y in import { x as y } statement is from allowed list.
  • consistent-test-file-name — Require that test file name matches some source file name.
  • no-re-export-mixing — Require that file contains either only re-export or only export of new items.
  • escape-doc-comment-entities — Require that "<" and ">" symbols inside doc comments are properly escaped.
  • no-array-mutation — Forbid array mutation.
  • no-duplicate-import — Forbid combining import { x } from "source" and import { x as y } from "source" in the same file.
  • protected-rules — Do not allow to disable selected ESLint rules.
  • sort-eslint-comments — Sort rules in eslint-disable comments.
  • sort-switch-cases — Sort switch cases.
  • spell-check — Spell check with international language support based on hunspell spell checker.