qlik-oss/picasso.js

View on GitHub
plugins/q/src/formatter/parts/qs-number-formatter.js

Summary

Maintainability
F
5 days
Test Coverage
A
91%

Showing 16 of 16 total issues

Function formatValue has a Cognitive Complexity of 93 (exceeds 5 allowed). Consider refactoring.
Open

formatValue(value) {
let prep = this._prepared,
temp,
exponent,
abbr = '',
Severity: Minor
Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 1 day to fix

File qs-number-formatter.js has 436 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import formatter from 'number-format.js';
 
// 1.95.toFixed(1) = 1.9
// 2.95.toFixed(1) = 3.0
const EPSILON = 1e-15; // To make sure toFixed always round up.
Severity: Minor
Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 6 hrs to fix

    Function formatValue has 142 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    formatValue(value) {
    let prep = this._prepared,
    temp,
    exponent,
    abbr = '',
    Severity: Major
    Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 5 hrs to fix

      Function prepare has 68 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      prepare(pattern, t, d) {
      let prep;
       
      if (typeof pattern === 'undefined') {
      pattern = this.pattern;
      Severity: Major
      Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 2 hrs to fix

        Function preparePattern has 56 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        function preparePattern(o, t, d, abbreviate) {
        let parts,
        lastPart,
        pattern = o.pattern,
        numericPattern,
        Severity: Major
        Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 2 hrs to fix

          Function preparePattern has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
          Open

          function preparePattern(o, t, d, abbreviate) {
          let parts,
          lastPart,
          pattern = o.pattern,
          numericPattern,
          Severity: Minor
          Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 2 hrs to fix

          Function prepare has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
          Open

          prepare(pattern, t, d) {
          let prep;
           
          if (typeof pattern === 'undefined') {
          pattern = this.pattern;
          Severity: Minor
          Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 1 hr to fix

          Function formatFunctional has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
          Open

          function formatFunctional(value, pattern, d) {
          let temp;
          if (radix.test(pattern)) {
          value = formatRadix(value, Number(/\d{2}/.exec(pattern)[0]), pattern, d);
          } else if (oct.test(pattern)) {
          Severity: Minor
          Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 1 hr to fix

          Function formatFunctional has 28 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          function formatFunctional(value, pattern, d) {
          let temp;
          if (radix.test(pattern)) {
          value = formatRadix(value, Number(/\d{2}/.exec(pattern)[0]), pattern, d);
          } else if (oct.test(pattern)) {
          Severity: Minor
          Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 1 hr to fix

            Avoid deeply nested control flow statements.
            Open

            } else if (wholePart === 0) {
            // to avoid "-" being prefixed to value
            num = 0;
            }
            Severity: Major
            Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 45 mins to fix

              Function formatRoman has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
              Open

              function formatRoman(value, pattern) {
              let i,
              s = '',
              v = Number(String(value).slice(-3)),
              nThousands = (value - v) / 1000,
              Severity: Minor
              Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 45 mins to fix

              Avoid deeply nested control flow statements.
              Open

              if (value.indexOf('.') >= 0) {
              value = value.replace(value.indexOf('e') < 0 ? /0+$/ : /\.?0+(?=e)/, '');
              value = value.replace('.', d);
              }
              Severity: Major
              Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 45 mins to fix

                Avoid deeply nested control flow statements.
                Open

                for (i = decimalPart.length; i < nZeroes; i++) {
                decimalPart += '0';
                }
                Severity: Major
                Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 45 mins to fix

                  Avoid deeply nested control flow statements.
                  Open

                  if (decimalPart) {
                  value += d + decimalPart;
                  }
                  Severity: Major
                  Found in plugins/q/src/formatter/parts/qs-number-formatter.js - About 45 mins to fix

                    Similar blocks of code found in 2 locations. Consider refactoring.
                    Open

                    if (!pattern[2]) {
                    prep.zero = false;
                    } else if (functional.test(pattern[2])) {
                    prep.zero.isFunctional = true;
                    }
                    Severity: Major
                    Found in plugins/q/src/formatter/parts/qs-number-formatter.js and 1 other location - About 1 hr to fix
                    plugins/q/src/formatter/parts/qs-number-formatter.js on lines 348..352

                    Similar blocks of code found in 2 locations. Consider refactoring.
                    Open

                    if (!pattern[1]) {
                    prep.negative = false;
                    } else if (functional.test(pattern[1])) {
                    prep.negative.isFunctional = true;
                    }
                    Severity: Major
                    Found in plugins/q/src/formatter/parts/qs-number-formatter.js and 1 other location - About 1 hr to fix
                    plugins/q/src/formatter/parts/qs-number-formatter.js on lines 353..357
                    Category
                    Status