mihnsen/ui-carousel

View on GitHub
src/ui-carousel/controllers/carousel.controller.js

Summary

Maintainability
D
1 day
Test Coverage

File carousel.controller.js has 380 lines of code (exceeds 250 allowed). Consider refactoring.
Open

/**
 * angular-ui-carousel
 * for example:
 * length = 8, show = 4, scroll = 3, current = 0
 *          ---------
Severity: Minor
Found in src/ui-carousel/controllers/carousel.controller.js - About 5 hrs to fix

    Function slideHandler has 75 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        this.slideHandler = (index) => {
          // TODO prevent when slides not exists
          if (!this.slides) {
            return $q.reject('Carousel not fully setup');
          }
    Severity: Major
    Found in src/ui-carousel/controllers/carousel.controller.js - About 3 hrs to fix

      Function initOptions has 45 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          this.initOptions = () => {
            this.options = angular.extend({}, Carousel.getOptions());
      
            // TODO customize attribute from directive
            if (this.initialSlide !== undefined) {
      Severity: Minor
      Found in src/ui-carousel/controllers/carousel.controller.js - About 1 hr to fix

        Arrow function has too many statements (31). Maximum allowed is 30.
        Open

            this.slideHandler = (index) => {

        enforce a maximum number of statements allowed in function blocks (max-statements)

        The max-statements rule allows you to specify the maximum number of statements allowed in a function.

        function foo() {
          var bar = 1; // one statement
          var baz = 2; // two statements
          var qux = 3; // three statements
        }

        Rule Details

        This rule enforces a maximum number of statements allowed in function blocks.

        Options

        This rule has a number or object option:

        • "max" (default 10) enforces a maximum number of statements allows in function blocks

        Deprecated: The object property maximum is deprecated; please use the object property max instead.

        This rule has an object option:

        • "ignoreTopLevelFunctions": true ignores top-level functions

        max

        Examples of incorrect code for this rule with the default { "max": 10 } option:

        /*eslint max-statements: ["error", 10]*/
        /*eslint-env es6*/
        
        function foo() {
          var foo1 = 1;
          var foo2 = 2;
          var foo3 = 3;
          var foo4 = 4;
          var foo5 = 5;
          var foo6 = 6;
          var foo7 = 7;
          var foo8 = 8;
          var foo9 = 9;
          var foo10 = 10;
        
          var foo11 = 11; // Too many.
        }
        
        let foo = () => {
          var foo1 = 1;
          var foo2 = 2;
          var foo3 = 3;
          var foo4 = 4;
          var foo5 = 5;
          var foo6 = 6;
          var foo7 = 7;
          var foo8 = 8;
          var foo9 = 9;
          var foo10 = 10;
        
          var foo11 = 11; // Too many.
        };

        Examples of correct code for this rule with the default { "max": 10 } option:

        /*eslint max-statements: ["error", 10]*/
        /*eslint-env es6*/
        
        function foo() {
          var foo1 = 1;
          var foo2 = 2;
          var foo3 = 3;
          var foo4 = 4;
          var foo5 = 5;
          var foo6 = 6;
          var foo7 = 7;
          var foo8 = 8;
          var foo9 = 9;
          var foo10 = 10;
          return function () {
        
            // The number of statements in the inner function does not count toward the
            // statement maximum.
        
            return 42;
          };
        }
        
        let foo = () => {
          var foo1 = 1;
          var foo2 = 2;
          var foo3 = 3;
          var foo4 = 4;
          var foo5 = 5;
          var foo6 = 6;
          var foo7 = 7;
          var foo8 = 8;
          var foo9 = 9;
          var foo10 = 10;
          return function () {
        
            // The number of statements in the inner function does not count toward the
            // statement maximum.
        
            return 42;
          };
        }

        ignoreTopLevelFunctions

        Examples of additional correct code for this rule with the { "max": 10 }, { "ignoreTopLevelFunctions": true } options:

        /*eslint max-statements: ["error", 10, { "ignoreTopLevelFunctions": true }]*/
        
        function foo() {
          var foo1 = 1;
          var foo2 = 2;
          var foo3 = 3;
          var foo4 = 4;
          var foo5 = 5;
          var foo6 = 6;
          var foo7 = 7;
          var foo8 = 8;
          var foo9 = 9;
          var foo10 = 10;
          var foo11 = 11;
        }

        Related Rules

        • [complexity](complexity.md)
        • [max-depth](max-depth.md)
        • [max-len](max-len.md)
        • [max-nested-callbacks](max-nested-callbacks.md)
        • [max-params](max-params.md) Source: http://eslint.org/docs/rules/

        Function setProps has 27 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            this.setProps = () => {
              const bodyStyle = document.body.style;
        
              /* eslint-disable */
              if (bodyStyle.OTransform !== undefined) {
        Severity: Minor
        Found in src/ui-carousel/controllers/carousel.controller.js - About 1 hr to fix

          Avoid too many return statements within this function.
          Open

                return this
                  .moveTrack(left)
                  .then(() => {
                    this.isTrackMoving = false;
                    this.currentSlide = target;
          Severity: Major
          Found in src/ui-carousel/controllers/carousel.controller.js - About 30 mins to fix

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

                  if (bodyStyle.msTransform !== undefined) {
                    this.animType = 'msTransform';
                    this.transformType = '-ms-transform';
                    this.transitionType = 'msTransition';
                  }
            Severity: Minor
            Found in src/ui-carousel/controllers/carousel.controller.js and 2 other locations - About 40 mins to fix
            src/ui-carousel/controllers/carousel.controller.js on lines 534..538
            src/ui-carousel/controllers/carousel.controller.js on lines 539..543

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

            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 3 locations. Consider refactoring.
            Open

                  if (bodyStyle.MozTransform !== undefined) {
                    this.animType = 'MozTransform';
                    this.transformType = '-moz-transform';
                    this.transitionType = 'MozTransition';
                  }
            Severity: Minor
            Found in src/ui-carousel/controllers/carousel.controller.js and 2 other locations - About 40 mins to fix
            src/ui-carousel/controllers/carousel.controller.js on lines 539..543
            src/ui-carousel/controllers/carousel.controller.js on lines 544..548

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

            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 3 locations. Consider refactoring.
            Open

                  if (bodyStyle.webkitTransform !== undefined) {
                    this.animType = 'webkitTransform';
                    this.transformType = '-webkit-transform';
                    this.transitionType = 'webkitTransition';
                  }
            Severity: Minor
            Found in src/ui-carousel/controllers/carousel.controller.js and 2 other locations - About 40 mins to fix
            src/ui-carousel/controllers/carousel.controller.js on lines 534..538
            src/ui-carousel/controllers/carousel.controller.js on lines 544..548

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

            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

            There are no issues that match your filters.

            Category
            Status