0.6.0 • Published 1 year ago

eslint-plugin-math v0.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

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 IDDescriptionFixableRECOMMENDED
math/absenforce the conversion to absolute values to be the method you prefer🔧
math/no-static-infinity-calculationsdisallow static calculations that go to infinity
math/no-static-nan-calculationsdisallow static calculations that go to NaN
math/prefer-exponentiation-operatorenforce the use of exponentiation (**) operator instead of other calculations🔧
math/prefer-math-cbrtenforce the use of Math.cbrt() instead of other cube root calculations🔧
math/prefer-math-eenforce the use of Math.E instead of other ways🔧
math/prefer-math-hypotenforce the use of Math.hypot() instead of other hypotenuse calculations🔧
math/prefer-math-ln10enforce the use of Math.LN10 instead of other ways🔧
math/prefer-math-ln2enforce the use of Math.LN2 instead of other ways🔧
math/prefer-math-log10enforce the use of Math.log10() instead of other calculation methods.🔧
math/prefer-math-log10eenforce the use of Math.LOG10E instead of other ways🔧
math/prefer-math-log2enforce the use of Math.log2() instead of other calculation methods.🔧
math/prefer-math-log2eenforce the use of Math.LOG2E instead of other ways🔧
math/prefer-math-pienforce the use of Math.PI instead of literal number🔧
math/prefer-math-sqrtenforce the use of Math.sqrt() instead of other square root calculations🔧
math/prefer-math-sqrt1-2enforce the use of Math.SQRT1_2 instead of other ways🔧
math/prefer-math-sqrt2enforce the use of Math.SQRT2 instead of other ways🔧
math/prefer-math-truncenforce the use of Math.trunc() instead of other truncations🔧
math/prefer-number-epsilonenforce the use of Number.EPSILON instead of other ways🔧
math/prefer-number-is-finiteenforce the use of Number.isFinite() instead of other checking ways🔧
math/prefer-number-is-integerenforce the use of Number.isInteger() instead of other checking ways🔧
math/prefer-number-is-nanenforce the use of Number.isNaN() instead of other checking ways🔧
math/prefer-number-is-safe-integerenforce the use of Number.isSafeInteger() instead of other checking ways🔧
math/prefer-number-max-safe-integerenforce the use of Number.MAX_SAFE_INTEGER instead of other ways🔧
math/prefer-number-max-valueenforce the use of Number.MAX_VALUE instead of literal number🔧
math/prefer-number-min-safe-integerenforce 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).

0.3.0

1 year ago

0.5.0

1 year ago

0.4.0

1 year ago

0.6.0

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago