cBioPortal/iViz

View on GitHub
app/scripts/session/sessionUtil.js

Summary

Maintainability
B
5 hrs
Test Coverage

Function utils has 93 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  vcSession.utils = (function() {
    var virtualCohort_ = {
      name: '',
      description: '',
      filters: '',
Severity: Major
Found in app/scripts/session/sessionUtil.js - About 3 hrs to fix

    Function generateVSDescription_ has 37 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        var generateVSDescription_ = function(_studies, _filters) {
          var _desp = '';
          if (_studies.studies.length > 0) {
            _desp = _studies.count + (_studies.count > 1 ? ' samples ' : ' sample ')
              + 'from ' + _studies.studies.length +
    Severity: Minor
    Found in app/scripts/session/sessionUtil.js - About 1 hr to fix

      'getCurrentDate' was used before it was defined
      Open

              _desp += '\n\nCreated on  ' + getCurrentDate();
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Disallow Early Use (no-use-before-define)

      In JavaScript, prior to ES6, variable and function declarations are hoisted to the top of a scope, so it's possible to use identifiers before their formal declarations in code. This can be confusing and some believe it is best to always declare variables and functions before using them.

      In ES6, block-level bindings (let and const) introduce a "temporal dead zone" where a ReferenceError will be thrown with any attempt to access the variable before its declaration.

      Rule Details

      This rule will warn when it encounters a reference to an identifier that has not yet been declared.

      Examples of incorrect code for this rule:

      /*eslint no-use-before-define: "error"*/
      /*eslint-env es6*/
      
      alert(a);
      var a = 10;
      
      f();
      function f() {}
      
      function g() {
          return b;
      }
      var b = 1;
      
      // With blockBindings: true
      {
          alert(c);
          let c = 1;
      }

      Examples of correct code for this rule:

      /*eslint no-use-before-define: "error"*/
      /*eslint-env es6*/
      
      var a;
      a = 10;
      alert(a);
      
      function f() {}
      f(1);
      
      var b = 1;
      function g() {
          return b;
      }
      
      // With blockBindings: true
      {
          let C;
          c++;
      }

      Options

      {
          "no-use-before-define": ["error", { "functions": true, "classes": true }]
      }
      • functions (boolean) - The flag which shows whether or not this rule checks function declarations. If this is true, this rule warns every reference to a function before the function declaration. Otherwise, ignores those references. Function declarations are hoisted, so it's safe. Default is true.
      • classes (boolean) - The flag which shows whether or not this rule checks class declarations of upper scopes. If this is true, this rule warns every reference to a class before the class declaration. Otherwise, ignores those references if the declaration is in upper function scopes. Class declarations are not hoisted, so it might be danger. Default is true.

      This rule accepts "nofunc" string as a option. "nofunc" is the same as { "functions": false, "classes": true }.

      functions

      Examples of correct code for the { "functions": false } option:

      /*eslint no-use-before-define: ["error", { "functions": false }]*/
      
      f();
      function f() {}

      classes

      Examples of incorrect code for the { "classes": false } option:

      /*eslint no-use-before-define: ["error", { "classes": false }]*/
      /*eslint-env es6*/
      
      new A();
      class A {
      }

      Examples of correct code for the { "classes": false } option:

      /*eslint no-use-before-define: ["error", { "classes": false }]*/
      /*eslint-env es6*/
      
      function foo() {
          return new A();
      }
      
      class A {
      }

      Source: http://eslint.org/docs/rules/

      'getVSDefaultName' was used before it was defined
      Open

              _virtualCohort.name = getVSDefaultName();
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Disallow Early Use (no-use-before-define)

      In JavaScript, prior to ES6, variable and function declarations are hoisted to the top of a scope, so it's possible to use identifiers before their formal declarations in code. This can be confusing and some believe it is best to always declare variables and functions before using them.

      In ES6, block-level bindings (let and const) introduce a "temporal dead zone" where a ReferenceError will be thrown with any attempt to access the variable before its declaration.

      Rule Details

      This rule will warn when it encounters a reference to an identifier that has not yet been declared.

      Examples of incorrect code for this rule:

      /*eslint no-use-before-define: "error"*/
      /*eslint-env es6*/
      
      alert(a);
      var a = 10;
      
      f();
      function f() {}
      
      function g() {
          return b;
      }
      var b = 1;
      
      // With blockBindings: true
      {
          alert(c);
          let c = 1;
      }

      Examples of correct code for this rule:

      /*eslint no-use-before-define: "error"*/
      /*eslint-env es6*/
      
      var a;
      a = 10;
      alert(a);
      
      function f() {}
      f(1);
      
      var b = 1;
      function g() {
          return b;
      }
      
      // With blockBindings: true
      {
          let C;
          c++;
      }

      Options

      {
          "no-use-before-define": ["error", { "functions": true, "classes": true }]
      }
      • functions (boolean) - The flag which shows whether or not this rule checks function declarations. If this is true, this rule warns every reference to a function before the function declaration. Otherwise, ignores those references. Function declarations are hoisted, so it's safe. Default is true.
      • classes (boolean) - The flag which shows whether or not this rule checks class declarations of upper scopes. If this is true, this rule warns every reference to a class before the class declaration. Otherwise, ignores those references if the declaration is in upper function scopes. Class declarations are not hoisted, so it might be danger. Default is true.

      This rule accepts "nofunc" string as a option. "nofunc" is the same as { "functions": false, "classes": true }.

      functions

      Examples of correct code for the { "functions": false } option:

      /*eslint no-use-before-define: ["error", { "functions": false }]*/
      
      f();
      function f() {}

      classes

      Examples of incorrect code for the { "classes": false } option:

      /*eslint no-use-before-define: ["error", { "classes": false }]*/
      /*eslint-env es6*/
      
      new A();
      class A {
      }

      Examples of correct code for the { "classes": false } option:

      /*eslint no-use-before-define: ["error", { "classes": false }]*/
      /*eslint-env es6*/
      
      function foo() {
          return new A();
      }
      
      class A {
      }

      Source: http://eslint.org/docs/rules/

      'iViz' is not defined.
      Open

                    _desp += iViz.util.getDisplayBarChartBreadCrumb(_filter.filter);
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Disallow Undeclared Variables (no-undef)

      This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

      Rule Details

      Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

      Examples of incorrect code for this rule:

      /*eslint no-undef: "error"*/
      
      var a = someFunction();
      b = 10;

      Examples of correct code for this rule with global declaration:

      /*global someFunction b:true*/
      /*eslint no-undef: "error"*/
      
      var a = someFunction();
      b = 10;

      The b:true syntax in /*global */ indicates that assignment to b is correct.

      Examples of incorrect code for this rule with global declaration:

      /*global b*/
      /*eslint no-undef: "error"*/
      
      b = 10;

      By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

      Options

      • typeof set to true will warn for variables used inside typeof check (Default false).

      typeof

      Examples of correct code for the default { "typeof": false } option:

      /*eslint no-undef: "error"*/
      
      if (typeof UndefinedIdentifier === "undefined") {
          // do something ...
      }

      You can use this option if you want to prevent typeof check on a variable which has not been declared.

      Examples of incorrect code for the { "typeof": true } option:

      /*eslint no-undef: ["error", { "typeof": true }] */
      
      if(typeof a === "string"){}

      Examples of correct code for the { "typeof": true } option with global declaration:

      /*global a*/
      /*eslint no-undef: ["error", { "typeof": true }] */
      
      if(typeof a === "string"){}

      Environments

      For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

      browser

      Examples of correct code for this rule with browser environment:

      /*eslint no-undef: "error"*/
      /*eslint-env browser*/
      
      setTimeout(function() {
          alert("Hello");
      });

      node

      Examples of correct code for this rule with node environment:

      /*eslint no-undef: "error"*/
      /*eslint-env node*/
      
      var fs = require("fs");
      module.exports = function() {
          console.log(fs);
      };

      When Not To Use It

      If explicit declaration of global variables is not to your taste.

      Compatibility

      This rule provides compatibility with treatment of global variables in JSHint and JSLint.

      Further Reading

      '&&' should be placed at the end of the line.
      Open

                    && ['mutated_genes', 'cna_details'].indexOf(_filter.attrId) !== -1) {
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Operator Linebreak (operator-linebreak)

      When a statement is too long to fit on a single line, line breaks are generally inserted next to the operators separating expressions. The first style coming to mind would be to place the operator at the end of the line, following the english punctuation rules.

      var fullHeight = borderTop +
                       innerHeight +
                       borderBottom;

      Some developers find that placing operators at the beginning of the line makes the code more readable.

      var fullHeight = borderTop
                     + innerHeight
                     + borderBottom;

      Rule Details

      The operator-linebreak rule is aimed at enforcing a particular operator line break style. As such, it warns whenever it sees a binary operator or assignment that does not adhere to a particular style: either placing linebreaks after or before the operators.

      Options

      The rule takes two options, a string, which can be "after", "before" or "none" where the default is "after" and an object for more fine-grained configuration.

      You can set the style in configuration like this:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after" } }]

      The default configuration is to enforce line breaks after the operator except for the ternary operator ? and : following that.

      "after"

      This is the default setting for this rule. This option requires the line break to be placed after the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1
      +
      2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1 + 2;
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      "before"

      This option requires the line break to be placed before the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 + 2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      "none"

      This option disallows line breaks on either side of the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 +
            2;
      
      foo = 1
          + 2;
      
      if (someCondition ||
          otherCondition) {
      }
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 + 2;
      
      foo = 5;
      
      if (someCondition || otherCondition) {
      }
      
      answer = everything ? 42 : foo;

      Fine-grained control

      The rule allows you to have even finer-grained control over individual operators by specifying an overrides dictionary:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after", "+=": "none" } }]

      This would override the global setting for that specific operator.

      "ignore" override

      This option is only supported using overrides and ignores line breaks on either side of the operator.

      While using this setting, the following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "ignore", ":": "ignore"} }]*/
      
      answer = everything ?
        42
        : foo;
      
      answer = everything
        ?
        42
        :
        foo;

      When Not To Use It

      If your project will not be using a common operator line break style, turn this rule off.

      Related Rules

      '+' should be placed at the end of the line.
      Open

                + 'from ' + _studies.studies.length +
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Operator Linebreak (operator-linebreak)

      When a statement is too long to fit on a single line, line breaks are generally inserted next to the operators separating expressions. The first style coming to mind would be to place the operator at the end of the line, following the english punctuation rules.

      var fullHeight = borderTop +
                       innerHeight +
                       borderBottom;

      Some developers find that placing operators at the beginning of the line makes the code more readable.

      var fullHeight = borderTop
                     + innerHeight
                     + borderBottom;

      Rule Details

      The operator-linebreak rule is aimed at enforcing a particular operator line break style. As such, it warns whenever it sees a binary operator or assignment that does not adhere to a particular style: either placing linebreaks after or before the operators.

      Options

      The rule takes two options, a string, which can be "after", "before" or "none" where the default is "after" and an object for more fine-grained configuration.

      You can set the style in configuration like this:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after" } }]

      The default configuration is to enforce line breaks after the operator except for the ternary operator ? and : following that.

      "after"

      This is the default setting for this rule. This option requires the line break to be placed after the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1
      +
      2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1 + 2;
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      "before"

      This option requires the line break to be placed before the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 + 2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      "none"

      This option disallows line breaks on either side of the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 +
            2;
      
      foo = 1
          + 2;
      
      if (someCondition ||
          otherCondition) {
      }
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 + 2;
      
      foo = 5;
      
      if (someCondition || otherCondition) {
      }
      
      answer = everything ? 42 : foo;

      Fine-grained control

      The rule allows you to have even finer-grained control over individual operators by specifying an overrides dictionary:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after", "+=": "none" } }]

      This would override the global setting for that specific operator.

      "ignore" override

      This option is only supported using overrides and ignores line breaks on either side of the operator.

      While using this setting, the following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "ignore", ":": "ignore"} }]*/
      
      answer = everything ?
        42
        : foo;
      
      answer = everything
        ?
        42
        :
        foo;

      When Not To Use It

      If your project will not be using a common operator line break style, turn this rule off.

      Related Rules

      '+' should be placed at the end of the line.
      Open

                  + _study.count + ' sample' + (_study.count > 1 ? 's' : '') + ')';
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Operator Linebreak (operator-linebreak)

      When a statement is too long to fit on a single line, line breaks are generally inserted next to the operators separating expressions. The first style coming to mind would be to place the operator at the end of the line, following the english punctuation rules.

      var fullHeight = borderTop +
                       innerHeight +
                       borderBottom;

      Some developers find that placing operators at the beginning of the line makes the code more readable.

      var fullHeight = borderTop
                     + innerHeight
                     + borderBottom;

      Rule Details

      The operator-linebreak rule is aimed at enforcing a particular operator line break style. As such, it warns whenever it sees a binary operator or assignment that does not adhere to a particular style: either placing linebreaks after or before the operators.

      Options

      The rule takes two options, a string, which can be "after", "before" or "none" where the default is "after" and an object for more fine-grained configuration.

      You can set the style in configuration like this:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after" } }]

      The default configuration is to enforce line breaks after the operator except for the ternary operator ? and : following that.

      "after"

      This is the default setting for this rule. This option requires the line break to be placed after the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1
      +
      2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1 + 2;
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      "before"

      This option requires the line break to be placed before the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 + 2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      "none"

      This option disallows line breaks on either side of the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 +
            2;
      
      foo = 1
          + 2;
      
      if (someCondition ||
          otherCondition) {
      }
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 + 2;
      
      foo = 5;
      
      if (someCondition || otherCondition) {
      }
      
      answer = everything ? 42 : foo;

      Fine-grained control

      The rule allows you to have even finer-grained control over individual operators by specifying an overrides dictionary:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after", "+=": "none" } }]

      This would override the global setting for that specific operator.

      "ignore" override

      This option is only supported using overrides and ignores line breaks on either side of the operator.

      While using this setting, the following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "ignore", ":": "ignore"} }]*/
      
      answer = everything ?
        42
        : foo;
      
      answer = everything
        ?
        42
        :
        foo;

      When Not To Use It

      If your project will not be using a common operator line break style, turn this rule off.

      Related Rules

      '+' should be placed at the end of the line.
      Open

              + ' (' + getCurrentDate() + ')';
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Operator Linebreak (operator-linebreak)

      When a statement is too long to fit on a single line, line breaks are generally inserted next to the operators separating expressions. The first style coming to mind would be to place the operator at the end of the line, following the english punctuation rules.

      var fullHeight = borderTop +
                       innerHeight +
                       borderBottom;

      Some developers find that placing operators at the beginning of the line makes the code more readable.

      var fullHeight = borderTop
                     + innerHeight
                     + borderBottom;

      Rule Details

      The operator-linebreak rule is aimed at enforcing a particular operator line break style. As such, it warns whenever it sees a binary operator or assignment that does not adhere to a particular style: either placing linebreaks after or before the operators.

      Options

      The rule takes two options, a string, which can be "after", "before" or "none" where the default is "after" and an object for more fine-grained configuration.

      You can set the style in configuration like this:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after" } }]

      The default configuration is to enforce line breaks after the operator except for the ternary operator ? and : following that.

      "after"

      This is the default setting for this rule. This option requires the line break to be placed after the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1
      +
      2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1 + 2;
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      "before"

      This option requires the line break to be placed before the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 + 2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      "none"

      This option disallows line breaks on either side of the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 +
            2;
      
      foo = 1
          + 2;
      
      if (someCondition ||
          otherCondition) {
      }
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 + 2;
      
      foo = 5;
      
      if (someCondition || otherCondition) {
      }
      
      answer = everything ? 42 : foo;

      Fine-grained control

      The rule allows you to have even finer-grained control over individual operators by specifying an overrides dictionary:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after", "+=": "none" } }]

      This would override the global setting for that specific operator.

      "ignore" override

      This option is only supported using overrides and ignores line breaks on either side of the operator.

      While using this setting, the following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "ignore", ":": "ignore"} }]*/
      
      answer = everything ?
        42
        : foo;
      
      answer = everything
        ?
        42
        :
        foo;

      When Not To Use It

      If your project will not be using a common operator line break style, turn this rule off.

      Related Rules

      Line 77 exceeds the maximum line length of 80.
      Open

                  } else if (_filter.viewType === 'scatter_plot' || _filter.viewType === 'custom') {
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      enforce a maximum line length (max-len)

      Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

      Rule Details

      This rule enforces a maximum line length to increase code readability and maintainability.

      Note: This rule calculates the length of a line via code points, not characters. That means if you use a double-byte character in your code, it will count as 2 code points instead of 1, and 2 will be used to calculate line length. This is a technical limitation of JavaScript that is made easier with ES2015, and we will look to update this when ES2015 is available in Node.js.

      Options

      This rule has a number or object option:

      • "code" (default 80) enforces a maximum line length
      • "tabWidth" (default 4) specifies the character width for tab characters
      • "comments" enforces a maximum line length for comments; defaults to value of code
      • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
      • "ignoreComments": true ignores all trailing comments and comments on their own line
      • "ignoreTrailingComments": true ignores only trailing comments
      • "ignoreUrls": true ignores lines that contain a URL

      code

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = {
        "bar": "This is a bar.",
        "baz": { "qux": "This is a qux" },
        "easier": "to read"
      };

      tabWidth

      Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

      Examples of correct code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = {
      \t  \t  \t  \t  "bar": "This is a bar.",
      \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
      \t  \t  };

      comments

      Examples of incorrect code for this rule with the { "comments": 65 } option:

      /*eslint max-len: ["error", { "comments": 65 }]*/
      
      /**
       * This is a comment that violates the maximum line length we have specified
      **/

      ignoreComments

      Examples of correct code for this rule with the { "ignoreComments": true } option:

      /*eslint max-len: ["error", { "ignoreComments": true }]*/
      
      /**
       * This is a really really really really really really really really really long comment
      **/

      ignoreTrailingComments

      Examples of correct code for this rule with the { "ignoreTrailingComments": true } option:

      /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
      
      var foo = 'bar'; // This is a really really really really really really really long comment

      ignoreUrls

      Examples of correct code for this rule with the { "ignoreUrls": true } option:

      /*eslint max-len: ["error", { "ignoreUrls": true }]*/
      
      var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

      ignorePattern

      Examples of correct code for this rule with the { "ignorePattern": true } option:

      /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
      
      var dep = require('really/really/really/really/really/really/really/really/long/module');

      Related Rules

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

      Line 73 exceeds the maximum line length of 80.
      Open

                    && ['mutated_genes', 'cna_details'].indexOf(_filter.attrId) !== -1) {
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      enforce a maximum line length (max-len)

      Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

      Rule Details

      This rule enforces a maximum line length to increase code readability and maintainability.

      Note: This rule calculates the length of a line via code points, not characters. That means if you use a double-byte character in your code, it will count as 2 code points instead of 1, and 2 will be used to calculate line length. This is a technical limitation of JavaScript that is made easier with ES2015, and we will look to update this when ES2015 is available in Node.js.

      Options

      This rule has a number or object option:

      • "code" (default 80) enforces a maximum line length
      • "tabWidth" (default 4) specifies the character width for tab characters
      • "comments" enforces a maximum line length for comments; defaults to value of code
      • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
      • "ignoreComments": true ignores all trailing comments and comments on their own line
      • "ignoreTrailingComments": true ignores only trailing comments
      • "ignoreUrls": true ignores lines that contain a URL

      code

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = {
        "bar": "This is a bar.",
        "baz": { "qux": "This is a qux" },
        "easier": "to read"
      };

      tabWidth

      Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

      Examples of correct code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = {
      \t  \t  \t  \t  "bar": "This is a bar.",
      \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
      \t  \t  };

      comments

      Examples of incorrect code for this rule with the { "comments": 65 } option:

      /*eslint max-len: ["error", { "comments": 65 }]*/
      
      /**
       * This is a comment that violates the maximum line length we have specified
      **/

      ignoreComments

      Examples of correct code for this rule with the { "ignoreComments": true } option:

      /*eslint max-len: ["error", { "ignoreComments": true }]*/
      
      /**
       * This is a really really really really really really really really really long comment
      **/

      ignoreTrailingComments

      Examples of correct code for this rule with the { "ignoreTrailingComments": true } option:

      /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
      
      var foo = 'bar'; // This is a really really really really really really really long comment

      ignoreUrls

      Examples of correct code for this rule with the { "ignoreUrls": true } option:

      /*eslint max-len: ["error", { "ignoreUrls": true }]*/
      
      var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

      ignorePattern

      Examples of correct code for this rule with the { "ignorePattern": true } option:

      /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
      
      var dep = require('really/really/really/really/really/really/really/really/long/module');

      Related Rules

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

      Line 103 exceeds the maximum line length of 80.
      Open

            return 'Selected ' + (_numOfSamples.sampleCounts__ > 1 ? 'samples' : 'sample')
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      enforce a maximum line length (max-len)

      Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

      Rule Details

      This rule enforces a maximum line length to increase code readability and maintainability.

      Note: This rule calculates the length of a line via code points, not characters. That means if you use a double-byte character in your code, it will count as 2 code points instead of 1, and 2 will be used to calculate line length. This is a technical limitation of JavaScript that is made easier with ES2015, and we will look to update this when ES2015 is available in Node.js.

      Options

      This rule has a number or object option:

      • "code" (default 80) enforces a maximum line length
      • "tabWidth" (default 4) specifies the character width for tab characters
      • "comments" enforces a maximum line length for comments; defaults to value of code
      • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
      • "ignoreComments": true ignores all trailing comments and comments on their own line
      • "ignoreTrailingComments": true ignores only trailing comments
      • "ignoreUrls": true ignores lines that contain a URL

      code

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = {
        "bar": "This is a bar.",
        "baz": { "qux": "This is a qux" },
        "easier": "to read"
      };

      tabWidth

      Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

      Examples of correct code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = {
      \t  \t  \t  \t  "bar": "This is a bar.",
      \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
      \t  \t  };

      comments

      Examples of incorrect code for this rule with the { "comments": 65 } option:

      /*eslint max-len: ["error", { "comments": 65 }]*/
      
      /**
       * This is a comment that violates the maximum line length we have specified
      **/

      ignoreComments

      Examples of correct code for this rule with the { "ignoreComments": true } option:

      /*eslint max-len: ["error", { "ignoreComments": true }]*/
      
      /**
       * This is a really really really really really really really really really long comment
      **/

      ignoreTrailingComments

      Examples of correct code for this rule with the { "ignoreTrailingComments": true } option:

      /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
      
      var foo = 'bar'; // This is a really really really really really really really long comment

      ignoreUrls

      Examples of correct code for this rule with the { "ignoreUrls": true } option:

      /*eslint max-len: ["error", { "ignoreUrls": true }]*/
      
      var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

      ignorePattern

      Examples of correct code for this rule with the { "ignorePattern": true } option:

      /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
      
      var dep = require('really/really/really/really/really/really/really/really/long/module');

      Related Rules

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

      '+' should be placed at the end of the line.
      Open

                      + (_filter.filter.length > 1 ? 's' : '');
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      Operator Linebreak (operator-linebreak)

      When a statement is too long to fit on a single line, line breaks are generally inserted next to the operators separating expressions. The first style coming to mind would be to place the operator at the end of the line, following the english punctuation rules.

      var fullHeight = borderTop +
                       innerHeight +
                       borderBottom;

      Some developers find that placing operators at the beginning of the line makes the code more readable.

      var fullHeight = borderTop
                     + innerHeight
                     + borderBottom;

      Rule Details

      The operator-linebreak rule is aimed at enforcing a particular operator line break style. As such, it warns whenever it sees a binary operator or assignment that does not adhere to a particular style: either placing linebreaks after or before the operators.

      Options

      The rule takes two options, a string, which can be "after", "before" or "none" where the default is "after" and an object for more fine-grained configuration.

      You can set the style in configuration like this:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after" } }]

      The default configuration is to enforce line breaks after the operator except for the ternary operator ? and : following that.

      "after"

      This is the default setting for this rule. This option requires the line break to be placed after the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1
      +
      2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after"]*/
      
      foo = 1 + 2;
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      "before"

      This option requires the line break to be placed before the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 +
            2;
      
      foo =
          5;
      
      if (someCondition ||
          otherCondition) {
      }
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "before"]*/
      
      foo = 1 + 2;
      
      foo = 1
          + 2;
      
      foo
          = 5;
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;

      "none"

      This option disallows line breaks on either side of the operator.

      While using this setting, the following patterns are considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 +
            2;
      
      foo = 1
          + 2;
      
      if (someCondition ||
          otherCondition) {
      }
      
      if (someCondition
          || otherCondition) {
      }
      
      answer = everything
        ? 42
        : foo;
      
      answer = everything ?
        42 :
        foo;

      The following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "none"]*/
      
      foo = 1 + 2;
      
      foo = 5;
      
      if (someCondition || otherCondition) {
      }
      
      answer = everything ? 42 : foo;

      Fine-grained control

      The rule allows you to have even finer-grained control over individual operators by specifying an overrides dictionary:

      "operator-linebreak": ["error", "before", { "overrides": { "?": "after", "+=": "none" } }]

      This would override the global setting for that specific operator.

      "ignore" override

      This option is only supported using overrides and ignores line breaks on either side of the operator.

      While using this setting, the following patterns are not considered problems:

      /*eslint operator-linebreak: ["error", "after", { "overrides": { "?": "ignore", ":": "ignore"} }]*/
      
      answer = everything ?
        42
        : foo;
      
      answer = everything
        ?
        42
        :
        foo;

      When Not To Use It

      If your project will not be using a common operator line break style, turn this rule off.

      Related Rules

      Line 88 exceeds the maximum line length of 80.
      Open

              if (window.userEmailAddress && window.userEmailAddress !== 'anonymousUser') {
      Severity: Minor
      Found in app/scripts/session/sessionUtil.js by eslint

      enforce a maximum line length (max-len)

      Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

      Rule Details

      This rule enforces a maximum line length to increase code readability and maintainability.

      Note: This rule calculates the length of a line via code points, not characters. That means if you use a double-byte character in your code, it will count as 2 code points instead of 1, and 2 will be used to calculate line length. This is a technical limitation of JavaScript that is made easier with ES2015, and we will look to update this when ES2015 is available in Node.js.

      Options

      This rule has a number or object option:

      • "code" (default 80) enforces a maximum line length
      • "tabWidth" (default 4) specifies the character width for tab characters
      • "comments" enforces a maximum line length for comments; defaults to value of code
      • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
      • "ignoreComments": true ignores all trailing comments and comments on their own line
      • "ignoreTrailingComments": true ignores only trailing comments
      • "ignoreUrls": true ignores lines that contain a URL

      code

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

      /*eslint max-len: ["error", 80]*/
      
      var foo = {
        "bar": "This is a bar.",
        "baz": { "qux": "This is a qux" },
        "easier": "to read"
      };

      tabWidth

      Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

      Examples of correct code for this rule with the default { "tabWidth": 4 } option:

      /*eslint max-len: ["error", 80, 4]*/
      
      \t  \t  var foo = {
      \t  \t  \t  \t  "bar": "This is a bar.",
      \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
      \t  \t  };

      comments

      Examples of incorrect code for this rule with the { "comments": 65 } option:

      /*eslint max-len: ["error", { "comments": 65 }]*/
      
      /**
       * This is a comment that violates the maximum line length we have specified
      **/

      ignoreComments

      Examples of correct code for this rule with the { "ignoreComments": true } option:

      /*eslint max-len: ["error", { "ignoreComments": true }]*/
      
      /**
       * This is a really really really really really really really really really long comment
      **/

      ignoreTrailingComments

      Examples of correct code for this rule with the { "ignoreTrailingComments": true } option:

      /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
      
      var foo = 'bar'; // This is a really really really really really really really long comment

      ignoreUrls

      Examples of correct code for this rule with the { "ignoreUrls": true } option:

      /*eslint max-len: ["error", { "ignoreUrls": true }]*/
      
      var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

      ignorePattern

      Examples of correct code for this rule with the { "ignorePattern": true } option:

      /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
      
      var dep = require('really/really/really/really/really/really/really/really/long/module');

      Related Rules

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

      There are no issues that match your filters.

      Category
      Status