npm.io
0.13.1 • Published 8 months ago

eslint-plugin-math

Licence
MIT
Version
0.13.1
Deps
2
Size
295 kB
Vulns
0
Weekly
0
Stars
15

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

Keywords