JSPM

  • Created
  • Published
  • Downloads 101673
  • Score
    100M100P100Q159444F
  • License MIT

More general-purpose ESLint rules

Package Exports

  • eslint-plugin-etc

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-etc) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

eslint-plugin-etc

GitHub License NPM version Downloads Build status dependency status devDependency Status peerDependency Status

This package contains a bunch of general-purpose, TypeScript-related ESLint rules. Essentially, it's a re-implementation of the rules that are in the tslint-etc package.

Some of the rules are rather opinionated and are not included in the recommended configuration. Developers can decide for themselves whether they want to enable opinionated rules.

Install

Install the ESLint TypeScript parser using npm:

npm install @typescript-eslint/parser --save-dev

Install the package using npm:

npm install eslint-plugin-etc --save-dev

Configure the parser and the parserOptions for ESLint. Here, I use a .eslintrc.js file for the configuration:

const { join } = require("path");
module.exports = {
  parser: "@typescript-eslint/parser",
  parserOptions: {
    ecmaVersion: 2019,
    project: join(__dirname, "./tsconfig.json"),
    sourceType: "module"
  },
  plugins: ["etc"],
  extends: [],
  rules: {
    "etc/no-t": "error"
  }
};

Or, using the recommended configuration:

const { join } = require("path");
module.exports = {
  parser: "@typescript-eslint/parser",
  parserOptions: {
    ecmaVersion: 2019,
    project: join(__dirname, "./tsconfig.json"),
    sourceType: "module"
  },
  extends: ["plugin:etc/recommended"],
};

Rules

The package includes the following rules:

Rule Description Recommended
no-assign-mutated-array Forbids the assignment of returned, mutated arrays. Yes
no-const-enum Forbids the use of const enum. Constant enums are not compatible with isolated modules. No
no-deprecated Forbids the use of deprecated APIs. Yes
no-enum Forbids the use of enum. No
no-implicit-any-catch Like the no-implicit-any-catch rule in @typescript-eslint/eslint-plugin, but for Promise rejections instead of catch clauses. Yes
no-internal Forbids the use of internal APIs. Yes
no-misused-generics Forbids type parameters without inference sites and type parameters that don't add type safety to declarations. This is an ESLint port of Wotan's no-misused-generics rule. See also "The Golden Rule of Generics". No
no-t Forbids single-character type parameters. No
prefer-interface Forbids type aliases where interfaces can be used. No
throw-error Forbids throwing - or rejecting with - non-Error values. No