any-eslint-parser.github.io

Check Any file with ESLint

any-eslint-parser any-eslint-parser  License Github repo Gitlab repo ______

Quick Start

1 . Add dependencies:

package.json:

  ..
  "devDependencies": {
    "any-eslint-parser": "1.0.0",
    "eslint": "*",

2 . Configure eslint with the required rules, e.g. eol-last and no-tabs:

.eslintrc-any.json:

{
  "parser": "any-eslint-parser",
  "rules": {
    "eol-last": "error",
    "no-tabs": "error"
  }
}

Any eslint rule that not required AST can be used, this example uses eol-last and no-tabs.

3 . Configure linting script:

package.json:

  "scripts": {
    "lint.any": "eslint --config .eslintrc-any.json \"**/*.+(js|jsx|ts|tsx|json|yml|xml|sh|txt|md|svg|properties|gradle|java|cpp|c|html|css|groovy|gitignore|npmignore)\"",

Goals

any-eslint-parser provides a parser so “any” type of file can be checked by eslint. Although eslint claims to be AST-based, there are rules that does not based on AST, rather they are based on the text content of the file, e.g. eol-last, no-tabs, eslint-plugin-regex, etc. any-eslint-parser can be used to check json files, yaml files, script files, source code files in any programming language (e.g. java, c++, groovy, etc.), svg files, markdown files, etc.

any-eslint-parser

This idea arise from the need to use eslint-plugin-regex in other type of files, besides javascript. (Then saw on this as a more versatile and configurable way to check common files than using lintspaces)

Examples

Replacing lintspaces

.eslintrc-any.json

  {
    "parser": "any-eslint-parser",
    "rules": {
      "eol-last": "error",
      "no-tabs": "error"
    }
  }

package.json:

  "scripts": {
    "lint.any": "eslint --config .eslintrc-any.json \"**/[\\.a-zA-Z]*.+(js|jsx|ts|tsx|json|yml|xml|sh|txt|md|svg|properties|gradle|java|cpp|c|html|css|groovy)\" \"**/.+(|gitignore|npmignore)\" --no-eslintrc --ignore-pattern \"build\""
  },
  "devDependencies": {
    "any-eslint-parser": "1.0.0",
    "eslint": "*"
  }

More detail at Migrating to eslint/any-eslint-parser from lintspaces.

Using eslint-plugin-regex

Requiring Copyright and License on every source file of a project.

.eslintrc-any.json

  {
    "plugins": ["regex"],
    "parser": "any-eslint-parser",
    "rules": {
      "regex/required": [
        "error", [
          "^(?:(?:\\/\\/)|#) Copyright \\(c\\) Super Team",
          "^(?:(?:\\/\\/)|#) Licensed under the MIT License \\(MIT\\), see LICENSE.txt"
        ]
      ]
    }
  }

package.json:

  "scripts": {
    "lint.any": "eslint --config .eslintrc-any.json \"**/*.+(js|jsx|ts|tsx|gradle|java|cpp|c|groovy|yml|sh)\""
  },
  "devDependencies": {
    "any-eslint-parser": "1.0.0",
    "eslint": "*",
    "eslint-plugin-regex": "*"
  }

More regex rules examples at eslint-plugin-regex and eslint-plugin-base-style-config regex rules.


Prerequisites


Contributing

License

MIT License ______

Remember

Additional words

Don’t forget:

At life:

At work: