Skip to content

Customisation

Conan edited this page Apr 9, 2023 · 3 revisions

big-number-rules 🔢 docs

$ pnpm i eslint-plugin-big-number-rules --save-dev

Using different libraries

Want to use something other than bignumber.js? Or use its shorter method-names such as pow and div instead of exponentiatedBy and dividedBy?

Here's a config that works with big.js:

// .eslintrc
{
  "plugins": ["big-number-rules"],
  "settings": {
    "big-number-rules": {
      "construct": "Big",
      "importDeclaration": "__IGNORE__",
      "importSpecifier": "__IGNORE__",
      "supportsSum": false,
      "supportsBitwise": false,
      "supportsRound": true,
      "unsafelyIgnoreSuggestionsForOperators": [],
      "arithmetic": {
        "+": "plus",
        "-": "minus",
        "/": "div",
        "*": "times",
        "**": "pow",
        "%": "mod"
      },
      "assignment": {
        "+=": "plus",
        "-=": "minus",
        "/=": "div",
        "*=": "times",
        "**=": "pow",
        "%=": "mod"
      },
      "comparison": {
        "<": "lt",
        "<=": "lte",
        "===": "eq",
        "==": "eq",
        "!==": ["__NEGATION__", "${L}", "eq", "${R}"],
        "!=": ["__NEGATION__", "${L}", "eq", "${R}"],
        ">=": "gte",
        ">": "gt"
      },
      "math": {
        "min": "min",
        "max": "max",
        "random": "NOT_SUPPORTED",
        "abs": "abs",
        "sign": ["__CONSTRUCT__(${A}).cmp(0)"],
        "sqrt": "sqrt"
      },
      "rounding": {
        "round": ["round", "${A}, 1"],
        "ceil": ["round", "${A}, 3"],
        "floor": ["round", "${A}, 0"]
      },
      "number": {
        "parseFloat": ["__CONSTRUCT__(${A})"],
        "toExponential": "toExponential",
        "toFixed": "dp",
        "toPrecision": "toPrecision",
        "toString": "toString"
      }
    }
  }
}

Find more examples in the /eslintrc-for-other-libs folder.

Please report an issue if your particular lib does something differently!

There can't be that many edge-cases, right? ;-)

Clone this wiki locally