@dimensiondev/eslint-plugin
Installation
You'll first need to install eslint:
npm install --save-dev eslint
Next, install @dimensiondev/eslint-plugin
:
# for stable version
npm install --save-dev @dimensiondev/eslint-plugin
# for unstable version
npm install --save-dev @dimensiondev/eslint-plugin --registry=https://npm.dimension.im
Usage
Add @dimensiondev
to the plugins section of your .eslintrc
configuration file.
{
"$schema": "https://dimensiondev.github.io/eslint-plugin/src/schema.json",
"plugins": ["@dimensiondev"],
"rules": {
"@dimensiondev/ban-eslint-disable": "error",
"@dimensiondev/no-bidi-characters": "off",
"@dimensiondev/no-bigint": "off",
"@dimensiondev/no-builtin-base64": "error",
"@dimensiondev/no-default-error": "error",
"@dimensiondev/no-implicit-array-sort": "error",
"@dimensiondev/no-invisible-characters": "error",
"@dimensiondev/no-jsx-logical": "off",
"@dimensiondev/no-jsx-template-literal": "error",
"@dimensiondev/no-locale-case": "error",
"@dimensiondev/no-number-constructor": "error",
"@dimensiondev/no-redundant-variable": "error",
"@dimensiondev/no-simple-string-interpolation": "error",
"@dimensiondev/no-simple-template-literal": "error",
"@dimensiondev/no-single-return": "error",
"@dimensiondev/no-then": "error",
"@dimensiondev/no-timer": "off",
"@dimensiondev/no-top-level": "off",
"@dimensiondev/no-unneeded-flat-map": "error",
"@dimensiondev/no-unneeded-to-string": "error",
"@dimensiondev/no-unsafe-date": "error",
"@dimensiondev/prefer-default-export": "off",
"@dimensiondev/prefer-early-return": "error",
"@dimensiondev/prefer-fetch": "error",
"@dimensiondev/prefer-location-assign": "error",
"@dimensiondev/prefer-timer-id": "error",
"@dimensiondev/unicode-specific-set": "off"
}
}
Supported Rules
Key:
-
ban-eslint-disable
✅ ⚙️
Baneslint-disable
comment directive -
no-bidi-characters
🔧
Detect and stop Trojan Source attacks -
no-bigint
💭
Disallow use BigInt -
no-builtin-base64
✅ 🔧
Disallow use built-in base64 function -
no-default-error
✅ 💭
Restrict the usage of default (unextended) error -
no-implicit-array-sort
✅ 💭
Enforce Array#sort provide comparator function -
no-invisible-characters
✅ 🔧
Disallow invisible characters -
no-jsx-logical
⚙️
Limit the complexity of JSX logic expression -
no-jsx-template-literal
✅ 🔧
Disallow use template-literal in JSX -
no-locale-case
✅ 🔧
Disallow use.toLocale{Upper,Lower}Case()
-
no-number-constructor
✅
Disallow useNumber
constructor -
no-redundant-variable
✅ 🔧
Disallow redundant variable -
no-simple-string-interpolation
✅
Disallow simple string interpolation -
no-simple-template-literal
✅ 🔧
Disallow simple template-literal -
no-single-return
✅
Disallow single-return -
no-then
✅
Disallow.then(...)
-
no-timer
Disallow use timer function -
no-top-level
⚙️
Disallow side-effect at module top-level -
no-unneeded-flat-map
✅ 🔧
Disallow.flatMap((x) => x)
when simpler alternatives exist -
no-unneeded-to-string
✅ 🔧 💭
Disallow.toString()
when simpler alternatives exist -
no-unsafe-date
✅ 💭
Disallow use unsafe Date methods -
prefer-default-export
⚙️
Enforce default export location at top or bottom -
prefer-early-return
✅ 🔧 ⚙️
Prefer early returns over full-body conditional wrapping in function declarations -
prefer-fetch
✅
Enforce fetch -
prefer-location-assign
✅ 🔧
Enforce best practice with location -
prefer-timer-id
✅ 💡
Enforce best practice with timer function -
unicode-specific-set
🔧 ⚙️
Limit the range of literal characters