Skip to content

ota-meshi/eslint-plugin-math

Repository files navigation

Introduction

eslint-plugin-math is ESLint plugin related to Math object and Number.

NPM license NPM version NPM downloads NPM downloads NPM downloads NPM downloads NPM downloads Build Status

πŸ“› 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 result in infinity ⭐
math/no-static-nan-calculations disallow static calculations that result in 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-sum-precise enforce the use of Math.sumPrecise() instead of other summation methods πŸ”§
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 πŸ”§ ⭐
math/prefer-number-min-value enforce the use of Number.MIN_VALUE instead of literal number πŸ”§ ⭐

πŸ›Έ Prior Art

🍻 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).

About

ESLint plugin related to Math object and Number.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •