eslint-plugin-math
v0.6.0
Published
ESLint plugin related to Math object and Number.
Downloads
365
Maintainers
Readme
Introduction
eslint-plugin-math is ESLint plugin related to Math object and Number.
📛 Features
ESLint plugin related to Math object and Number.
You can check on the Online DEMO.
📖 Documentation
See documents.
💿 Installation
npm install --save-dev eslint eslint-plugin-math
Requirements
- ESLint v8.57.0 and above
- Node.js v18.x, v20.x and above
📖 Usage
Configuration
New Config (eslint.config.js
)
Use eslint.config.js
file to configure rules. See also: https://eslint.org/docs/latest/use/configure/configuration-files-new.
Example eslint.config.js:
import eslintPluginMath from 'eslint-plugin-math';
export default [
// add more generic rule sets here, such as:
// js.configs.recommended,
eslintPluginMath.configs.recommended,
{
rules: {
// override/add rules settings here, such as:
// 'math/prefer-math-trunc': 'error'
}
}
];
This plugin provides configs:
*.configs.recommended
... Recommended config provided by the plugin.
See the rule list to get the rules
that this plugin provides.
Legacy Config (.eslintrc
)
Use .eslintrc.*
file to configure rules. See also: https://eslint.org/docs/latest/use/configure/.
Example .eslintrc.js:
module.exports = {
extends: [
// add more generic rulesets here, such as:
// 'eslint:recommended',
'plugin:math/recommended-legacy'
],
rules: {
// override/add rules settings here, such as:
// 'math/prefer-math-trunc': 'error'
}
}
This plugin provides configs:
plugin:math/recommended-legacy
... Recommended config provided by the plugin.
See the rule list to get the rules
that this plugin provides.
✅ Rules
The --fix
option on the command line automatically fixes problems reported by rules which have a wrench 🔧 below.
The rules with the following star ⭐ are included in the configs.
Math Rules
| Rule ID | Description | Fixable | RECOMMENDED |
|:--------|:------------|:-------:|:-----------:|
| math/abs | enforce the conversion to absolute values to be the method you prefer | 🔧 | |
| math/no-static-infinity-calculations | disallow static calculations that go to infinity | | ⭐ |
| math/no-static-nan-calculations | disallow static calculations that go to NaN | | ⭐ |
| math/prefer-exponentiation-operator | enforce the use of exponentiation (**
) operator instead of other calculations | 🔧 | |
| math/prefer-math-cbrt | enforce the use of Math.cbrt() instead of other cube root calculations | 🔧 | ⭐ |
| math/prefer-math-e | enforce the use of Math.E instead of other ways | 🔧 | ⭐ |
| math/prefer-math-hypot | enforce the use of Math.hypot() instead of other hypotenuse calculations | 🔧 | ⭐ |
| math/prefer-math-ln10 | enforce the use of Math.LN10 instead of other ways | 🔧 | ⭐ |
| math/prefer-math-ln2 | enforce the use of Math.LN2 instead of other ways | 🔧 | ⭐ |
| math/prefer-math-log10 | enforce the use of Math.log10() instead of other calculation methods. | 🔧 | ⭐ |
| math/prefer-math-log10e | enforce the use of Math.LOG10E instead of other ways | 🔧 | ⭐ |
| math/prefer-math-log2 | enforce the use of Math.log2() instead of other calculation methods. | 🔧 | ⭐ |
| math/prefer-math-log2e | enforce the use of Math.LOG2E instead of other ways | 🔧 | ⭐ |
| math/prefer-math-pi | enforce the use of Math.PI instead of literal number | 🔧 | ⭐ |
| math/prefer-math-sqrt | enforce the use of Math.sqrt() instead of other square root calculations | 🔧 | ⭐ |
| math/prefer-math-sqrt1-2 | enforce the use of Math.SQRT1_2 instead of other ways | 🔧 | ⭐ |
| math/prefer-math-sqrt2 | enforce the use of Math.SQRT2 instead of other ways | 🔧 | ⭐ |
| math/prefer-math-trunc | enforce the use of Math.trunc() instead of other truncations | 🔧 | ⭐ |
| math/prefer-number-epsilon | enforce the use of Number.EPSILON instead of other ways | 🔧 | ⭐ |
| math/prefer-number-is-finite | enforce the use of Number.isFinite() instead of other checking ways | 🔧 | ⭐ |
| math/prefer-number-is-integer | enforce the use of Number.isInteger() instead of other checking ways | 🔧 | ⭐ |
| math/prefer-number-is-nan | enforce the use of Number.isNaN() instead of other checking ways | 🔧 | ⭐ |
| math/prefer-number-is-safe-integer | enforce the use of Number.isSafeInteger() instead of other checking ways | 🔧 | ⭐ |
| math/prefer-number-max-safe-integer | enforce the use of Number.MAX_SAFE_INTEGER instead of other ways | 🔧 | ⭐ |
| math/prefer-number-max-value | enforce the use of Number.MAX_VALUE instead of literal number | 🔧 | ⭐ |
| math/prefer-number-min-safe-integer | enforce the use of Number.MIN_SAFE_INTEGER instead of other ways | 🔧 | ⭐ |
🛸 Prior Art
https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-math-trunc.md https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-modern-math-apis.md https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-number-properties.md
🍻 Contributing
Welcome contributing!
Please use GitHub's Issues/PRs.
Development Tools
npm test
runs tests and measures coverage.npm run update
runs in order to update readme and recommended configuration.
🔒 License
See the LICENSE file for license rights and limitations (MIT).