Gapminder/vizabi

View on GitHub

Showing 540 of 540 total issues

Function _modelMapping has 66 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  _modelMapping(model_config) {
    const _this = this;
    const values = {};
    //If model_config is an array, we map it
    if (utils.isArray(model_config) && utils.isArray(this.model_expects)) {
Severity: Major
Found in src/base/component.js - About 2 hrs to fix

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

      isHighlighted(d) {
        const _this = this;
        const value = JSON.stringify(this._createValue(d));
        return this.highlight
          .map(d => JSON.stringify(_this._createValue(d)) === value)
    Severity: Major
    Found in src/models/marker.js and 1 other location - About 2 hrs to fix
    src/models/marker.js on lines 239..246

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 87.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

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

      isSelected(d) {
        const _this = this;
        const value = JSON.stringify(this._createValue(d));
    
        return this.select
    Severity: Major
    Found in src/models/marker.js and 1 other location - About 2 hrs to fix
    src/models/marker.js on lines 322..328

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 87.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Function _toggleButtons has 65 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

      _toggleButtons() {
        const _this = this;
        const parent = this.parent.element.node ? this.parent.element : d3.select(this.parent.element);
    
        //HERE
    Severity: Major
    Found in src/components/buttonlist/buttonlist.js - About 2 hrs to fix

      Function _updateLabelSize has 64 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        _updateLabelSize(d, index, cache, labelGroup, valueLST, text) {
          const _this = this;
          const KEY = this.KEY;
          const cached = cache || _this.cached[d[KEY]];
      
      
      Severity: Major
      Found in src/helpers/labels.js - About 2 hrs to fix

        Function buildFrame has 64 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

              const buildFrame = function(frameName, keys, dataId, callback) {
                const frame = {};
                if (query.from !== "datapoints") {
                  // we populate the regular set with a single value (unpack properties into constant time series)
                  const dataset = _this._collection[dataId].data;
        Severity: Major
        Found in src/base/datastorage.js - About 2 hrs to fix

          Function _updateProgressBar has 63 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

            _updateProgressBar(time) {
              const _this = this;
              if (time) {
                if (_this.completedTimeFrames.indexOf(time) != -1) return;
                _this.completedTimeFrames.push(time);
          Severity: Major
          Found in src/components/timeslider/timeslider.js - About 2 hrs to fix

            ButtonList has 23 functions (exceeds 20 allowed). Consider refactoring.
            Open

            const ButtonList = Component.extend({
            
              /**
               * Initializes the buttonlist
               * @param config component configuration
            Severity: Minor
            Found in src/components/buttonlist/buttonlist.js - About 2 hrs to fix

              Function _buildColorScale has 62 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                _buildColorScale(scaleType, paletteObject) {
                  const _this = this;
                  let domain = Object.keys(paletteObject);
                  let range = utils.values(paletteObject);
                  let scale;
              Severity: Major
              Found in src/models/color.js - About 2 hrs to fix

                Function getKeys has 62 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                  getKeys(KEYS) {
                    const _this = this;
                    let resultKeys;
                
                    KEYS = KEYS || utils.unique(this._getAllDimensions({ exceptType: "time" }));
                Severity: Major
                Found in src/models/marker.js - About 2 hrs to fix

                  Function init has 62 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                    init(config, context) {
                  
                      //set properties
                      const _this = this;
                      this.name = "gapminder-zoombuttonlist";
                  Severity: Major
                  Found in src/components/zoombuttonlist/zoombuttonlist.js - About 2 hrs to fix

                    Function reader has 61 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                          this.reader = function(query, parsers, defer) {
                            const _queue = this;
                            // && !(_queue.readerObject.compatibility || {}).aggregateValues
                            const _query = query.grouping ? utils.clone(query, null, ["grouping"]) : query;
                            return new function() {
                    Severity: Major
                    Found in src/base/datastorage.js - About 2 hrs to fix

                      Function init has 61 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                        init(config, context) {
                          const _this = this;
                          this.template = '<div class="vzb-cl-outer"></div>';
                          this.name = "colorlegend";
                      
                      
                      Severity: Major
                      Found in src/components/colorlegend/colorlegend.js - About 2 hrs to fix

                        File color.js has 268 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        import * as utils from "base/utils";
                        import Hook from "models/hook";
                        
                        /*!
                         * VIZABI Color Model (hook)
                        Severity: Minor
                        Found in src/models/color.js - About 2 hrs to fix

                          Function _updateLabelSize has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
                          Open

                            _updateLabelSize(d, index, cache, labelGroup, valueLST, text) {
                              const _this = this;
                              const KEY = this.KEY;
                              const cached = cache || _this.cached[d[KEY]];
                          
                          
                          Severity: Minor
                          Found in src/helpers/labels.js - About 2 hrs to fix

                          Cognitive Complexity

                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                          A method's cognitive complexity is based on a few simple rules:

                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                          • Code is considered more complex for each "break in the linear flow of the code"
                          • Code is considered more complex when "flow breaking structures are nested"

                          Further reading

                          Function interpolatePoint has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
                          Open

                          export const interpolatePoint = function(items, use, which, next, dimTime, time, method, extrapolate) {
                          
                          
                            if (!items || items.length === 0) {
                              warn("interpolatePoint failed because incoming array is empty. It was " + which);
                          Severity: Minor
                          Found in src/base/utils.js - About 2 hrs to fix

                          Cognitive Complexity

                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                          A method's cognitive complexity is based on a few simple rules:

                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                          • Code is considered more complex for each "break in the linear flow of the code"
                          • Code is considered more complex when "flow breaking structures are nested"

                          Further reading

                          Function extend has 60 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                          function extend(name, extensions) {
                          
                            //in case there are two args
                            extensions = arguments.length === 1 ? name : extensions;
                            const _super = this.prototype;
                          Severity: Major
                          Found in src/base/class.js - About 2 hrs to fix

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

                              autoconfigureModel() {
                                if (!this.dim && this.autoconfig) {
                                  const concept = this.dataSource.getConcept(this.autoconfig);
                            
                                  if (concept) this.dim = concept.concept;
                            Severity: Major
                            Found in src/models/time.js and 1 other location - About 2 hrs to fix
                            src/models/entities.js on lines 53..60

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 82.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

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

                              autoconfigureModel() {
                                if (!this.dim && this.autoconfig) {
                                  const concept = this.dataSource.getConcept(this.autoconfig);
                            
                                  if (concept) this.dim = concept.concept;
                            Severity: Major
                            Found in src/models/entities.js and 1 other location - About 2 hrs to fix
                            src/models/time.js on lines 145..152

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 82.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Function init has 58 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                              init(config, parent) {
                                this.name = "find";
                                const _this = this;
                            
                                this.components = [{
                            Severity: Major
                            Found in src/components/dialogs/find/find.js - About 2 hrs to fix
                              Severity
                              Category
                              Status
                              Source
                              Language