bondden/esf-puml

View on GitHub

Showing 116 of 116 total issues

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

        return 'java -jar ' + H.jarPth + ' ' + '-charset "utf8" ' + H._.setFmt(fmt) + ' ' + '-o "' + outDir + '" "' + path.resolve(inpDir + '/**.puml') + '"';
Severity: Major
Found in index.js and 1 other location - About 1 hr to fix
src/index.es7.js on lines 79..82

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

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

      write: function write(d, encoding, next) {

        if (cwd) {
          d = H._.customCwd(d, cwd);
        }
Severity: Major
Found in index.js and 1 other location - About 1 hr to fix
src/index.es7.js on lines 338..348

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

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

      write:function(d, encoding, next){

        if(cwd){
          d=H._.customCwd(d,cwd);
        }
Severity: Major
Found in src/index.es7.js and 1 other location - About 1 hr to fix
index.js on lines 316..325

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

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 renderStringToString has 34 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  renderStringToString(strIn) {
    let format = arguments.length <= 1 || arguments[1] === undefined ? 'svg' : arguments[1];

    var H = this;
    return new Promise((rs, rj) => {
Severity: Minor
Found in index.js - About 1 hr to fix

    Function renderStringToString has 33 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

      renderStringToString(strIn,format='svg'){
        var H=this;
        return new Promise((rs,rj)=>{
    
          let out='';
    Severity: Minor
    Found in src/index.es7.js - About 1 hr to fix

      Function stream has 32 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        stream() {
          let format = arguments.length <= 0 || arguments[0] === undefined ? 'svg' : arguments[0];
          let cwd = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
      
      
      
      Severity: Minor
      Found in index.js - About 1 hr to fix

        Function cleanSvgFile has 31 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          cleanSvgFile(fileOut){
            //var H=this;
            return new Promise((rs,rj)=>{
        
              fs.readFile(fileOut,'utf8',(e1,r1)=>{
        Severity: Minor
        Found in src/index.es7.js - About 1 hr to fix

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

                  return 'java -jar ' + H.jarPth + ' ' + '-charset "utf8" ' + H._.setFmt(fmt) + ' ' + '-o "' + out + '" "' + inp + '"';
          Severity: Major
          Found in index.js and 1 other location - About 1 hr to fix
          src/index.es7.js on lines 88..91

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

          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

                  return  'java -jar '+H.jarPth+' ' +
                          '-charset "utf8" ' +
                          H._.setFmt(fmt) +' '+
                          '-o "'+out+'" "'+inp+'"';
          Severity: Major
          Found in src/index.es7.js and 1 other location - About 1 hr to fix
          index.js on lines 85..85

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

          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 stream has 30 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

            stream(format='svg',cwd=null){
          
              var H=this;
          
              let pcs=exec(this._.createQryStm(format));
          Severity: Minor
          Found in src/index.es7.js - About 1 hr to fix

            Function cleanSvgFile has 29 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

              cleanSvgFile(fileOut) {
                //var H=this;
                return new Promise((rs, rj) => {
            
                  fs.readFile(fileOut, 'utf8', (e1, r1) => {
            Severity: Minor
            Found in index.js - About 1 hr to fix

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

                renderString(strIn, fileOut) {
                  let format = arguments.length <= 2 || arguments[2] === undefined ? 'svg' : arguments[2];
              
                  var H = this;
                  return new Promise((rs, rj) => {
              Severity: Minor
              Found in index.js - About 1 hr to fix

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

                  renderFile(fileIn,dirOut,format='svg'){
                    var H=this;
                    return new Promise((rs,rj)=>{
                
                      exec(
                Severity: Minor
                Found in src/index.es7.js - About 1 hr to fix

                  Function renderString has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                    renderString(strIn,fileOut,format='svg'){
                      var H=this;
                      return new Promise((rs,rj)=>{
                  
                        let qry=H._.createQryStr(strIn,fileOut,format);
                  Severity: Minor
                  Found in src/index.es7.js - About 1 hr to fix

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

                            return 'java -jar ' + H.jarPth + ' ' + '-charset "utf8" ' + H._.setFmt(fmt) + ' ' + '-pipe > "' + outFile + '"';
                    Severity: Minor
                    Found in index.js and 1 other location - About 50 mins to fix
                    src/index.es7.js on lines 97..100

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

                    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

                            return  'java -jar '+H.jarPth+' ' +
                                    '-charset "utf8" ' +
                                    H._.setFmt(fmt) +' '+
                                    '-pipe > "'+outFile+'"';
                    Severity: Minor
                    Found in src/index.es7.js and 1 other location - About 50 mins to fix
                    index.js on lines 92..92

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

                    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

                    Properties shouldn't be quoted as all quotes are redundant.
                    Open

                        "maps":'.maps/'
                    Severity: Minor
                    Found in gulpfile.babel.js by eslint

                    require quotes around object literal property names (quote-props)

                    Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

                    var object1 = {
                        property: true
                    };
                    
                    var object2 = {
                        "property": true
                    };

                    In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

                    There are, however, some occasions when you must use quotes:

                    1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
                    2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

                    Another example where quotes do matter is when using numeric literals as property keys:

                    var object = {
                        1e2: 1,
                        100: 2
                    };

                    This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

                    Rule Details

                    This rule requires quotes around object literal property names.

                    Options

                    This rule has two options, a string option and an object option.

                    String option:

                    • "always" (default) requires quotes around all object literal property names
                    • "as-needed" disallows quotes around object literal property names that are not strictly required
                    • "consistent" enforces a consistent quote style requires quotes around object literal property names
                    • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

                    Object option:

                    • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
                    • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
                    • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
                    • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

                    always

                    Examples of incorrect code for this rule with the default "always" option:

                    /*eslint quote-props: ["error", "always"]*/
                    
                    var object = {
                        foo: "bar",
                        baz: 42,
                        "qux-lorem": true
                    };

                    Examples of correct code for this rule with the default "always" option:

                    /*eslint quote-props: ["error", "always"]*/
                    /*eslint-env es6*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42,
                        'qux-lorem': true
                    };
                    
                    var object3 = {
                        foo() {
                            return;
                        }
                    };

                    as-needed

                    Examples of incorrect code for this rule with the "as-needed" option:

                    /*eslint quote-props: ["error", "as-needed"]*/
                    
                    var object = {
                        "a": 0,
                        "0": 0,
                        "true": 0,
                        "null": 0
                    };

                    Examples of correct code for this rule with the "as-needed" option:

                    /*eslint quote-props: ["error", "as-needed"]*/
                    /*eslint-env es6*/
                    
                    var object1 = {
                        "a-b": 0,
                        "0x0": 0,
                        "1e2": 0
                    };
                    
                    var object2 = {
                        foo: 'bar',
                        baz: 42,
                        true: 0,
                        0: 0,
                        'qux-lorem': true
                    };
                    
                    var object3 = {
                        foo() {
                            return;
                        }
                    };

                    consistent

                    Examples of incorrect code for this rule with the "consistent" option:

                    /*eslint quote-props: ["error", "consistent"]*/
                    
                    var object1 = {
                        foo: "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        baz: 42
                    };

                    Examples of correct code for this rule with the "consistent" option:

                    /*eslint quote-props: ["error", "consistent"]*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42
                    };
                    
                    var object3 = {
                        foo: 'bar',
                        baz: 42
                    };

                    consistent-as-needed

                    Examples of incorrect code for this rule with the "consistent-as-needed" option:

                    /*eslint quote-props: ["error", "consistent-as-needed"]*/
                    
                    var object1 = {
                        foo: "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42
                    };

                    Examples of correct code for this rule with the "consistent-as-needed" option:

                    /*eslint quote-props: ["error", "consistent-as-needed"]*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        foo: 'bar',
                        baz: 42
                    };

                    keywords

                    Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

                    /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
                    
                    var x = {
                        while: 1,
                        volatile: "foo"
                    };

                    Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

                    /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
                    
                    var x = {
                        "prop": 1,
                        "bar": "foo"
                    };

                    unnecessary

                    Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

                    /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
                    
                    var x = {
                        "while": 1,
                        "foo": "bar"  // Would normally have caused a warning
                    };

                    numbers

                    Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

                    /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
                    
                    var x = {
                        100: 1
                    }

                    When Not To Use It

                    If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

                    Further Reading

                    Properties shouldn't be quoted as all quotes are redundant.
                    Open

                        "src": 'src/*.es7.js',
                    Severity: Minor
                    Found in gulpfile.babel.js by eslint

                    require quotes around object literal property names (quote-props)

                    Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

                    var object1 = {
                        property: true
                    };
                    
                    var object2 = {
                        "property": true
                    };

                    In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

                    There are, however, some occasions when you must use quotes:

                    1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
                    2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

                    Another example where quotes do matter is when using numeric literals as property keys:

                    var object = {
                        1e2: 1,
                        100: 2
                    };

                    This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

                    Rule Details

                    This rule requires quotes around object literal property names.

                    Options

                    This rule has two options, a string option and an object option.

                    String option:

                    • "always" (default) requires quotes around all object literal property names
                    • "as-needed" disallows quotes around object literal property names that are not strictly required
                    • "consistent" enforces a consistent quote style requires quotes around object literal property names
                    • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

                    Object option:

                    • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
                    • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
                    • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
                    • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

                    always

                    Examples of incorrect code for this rule with the default "always" option:

                    /*eslint quote-props: ["error", "always"]*/
                    
                    var object = {
                        foo: "bar",
                        baz: 42,
                        "qux-lorem": true
                    };

                    Examples of correct code for this rule with the default "always" option:

                    /*eslint quote-props: ["error", "always"]*/
                    /*eslint-env es6*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42,
                        'qux-lorem': true
                    };
                    
                    var object3 = {
                        foo() {
                            return;
                        }
                    };

                    as-needed

                    Examples of incorrect code for this rule with the "as-needed" option:

                    /*eslint quote-props: ["error", "as-needed"]*/
                    
                    var object = {
                        "a": 0,
                        "0": 0,
                        "true": 0,
                        "null": 0
                    };

                    Examples of correct code for this rule with the "as-needed" option:

                    /*eslint quote-props: ["error", "as-needed"]*/
                    /*eslint-env es6*/
                    
                    var object1 = {
                        "a-b": 0,
                        "0x0": 0,
                        "1e2": 0
                    };
                    
                    var object2 = {
                        foo: 'bar',
                        baz: 42,
                        true: 0,
                        0: 0,
                        'qux-lorem': true
                    };
                    
                    var object3 = {
                        foo() {
                            return;
                        }
                    };

                    consistent

                    Examples of incorrect code for this rule with the "consistent" option:

                    /*eslint quote-props: ["error", "consistent"]*/
                    
                    var object1 = {
                        foo: "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        baz: 42
                    };

                    Examples of correct code for this rule with the "consistent" option:

                    /*eslint quote-props: ["error", "consistent"]*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42
                    };
                    
                    var object3 = {
                        foo: 'bar',
                        baz: 42
                    };

                    consistent-as-needed

                    Examples of incorrect code for this rule with the "consistent-as-needed" option:

                    /*eslint quote-props: ["error", "consistent-as-needed"]*/
                    
                    var object1 = {
                        foo: "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42
                    };

                    Examples of correct code for this rule with the "consistent-as-needed" option:

                    /*eslint quote-props: ["error", "consistent-as-needed"]*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        foo: 'bar',
                        baz: 42
                    };

                    keywords

                    Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

                    /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
                    
                    var x = {
                        while: 1,
                        volatile: "foo"
                    };

                    Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

                    /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
                    
                    var x = {
                        "prop": 1,
                        "bar": "foo"
                    };

                    unnecessary

                    Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

                    /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
                    
                    var x = {
                        "while": 1,
                        "foo": "bar"  // Would normally have caused a warning
                    };

                    numbers

                    Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

                    /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
                    
                    var x = {
                        100: 1
                    }

                    When Not To Use It

                    If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

                    Further Reading

                    Properties shouldn't be quoted as all quotes are redundant.
                    Open

                      "tst":{
                    Severity: Minor
                    Found in gulpfile.babel.js by eslint

                    require quotes around object literal property names (quote-props)

                    Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

                    var object1 = {
                        property: true
                    };
                    
                    var object2 = {
                        "property": true
                    };

                    In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

                    There are, however, some occasions when you must use quotes:

                    1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
                    2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

                    Another example where quotes do matter is when using numeric literals as property keys:

                    var object = {
                        1e2: 1,
                        100: 2
                    };

                    This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

                    Rule Details

                    This rule requires quotes around object literal property names.

                    Options

                    This rule has two options, a string option and an object option.

                    String option:

                    • "always" (default) requires quotes around all object literal property names
                    • "as-needed" disallows quotes around object literal property names that are not strictly required
                    • "consistent" enforces a consistent quote style requires quotes around object literal property names
                    • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

                    Object option:

                    • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
                    • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
                    • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
                    • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

                    always

                    Examples of incorrect code for this rule with the default "always" option:

                    /*eslint quote-props: ["error", "always"]*/
                    
                    var object = {
                        foo: "bar",
                        baz: 42,
                        "qux-lorem": true
                    };

                    Examples of correct code for this rule with the default "always" option:

                    /*eslint quote-props: ["error", "always"]*/
                    /*eslint-env es6*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42,
                        'qux-lorem': true
                    };
                    
                    var object3 = {
                        foo() {
                            return;
                        }
                    };

                    as-needed

                    Examples of incorrect code for this rule with the "as-needed" option:

                    /*eslint quote-props: ["error", "as-needed"]*/
                    
                    var object = {
                        "a": 0,
                        "0": 0,
                        "true": 0,
                        "null": 0
                    };

                    Examples of correct code for this rule with the "as-needed" option:

                    /*eslint quote-props: ["error", "as-needed"]*/
                    /*eslint-env es6*/
                    
                    var object1 = {
                        "a-b": 0,
                        "0x0": 0,
                        "1e2": 0
                    };
                    
                    var object2 = {
                        foo: 'bar',
                        baz: 42,
                        true: 0,
                        0: 0,
                        'qux-lorem': true
                    };
                    
                    var object3 = {
                        foo() {
                            return;
                        }
                    };

                    consistent

                    Examples of incorrect code for this rule with the "consistent" option:

                    /*eslint quote-props: ["error", "consistent"]*/
                    
                    var object1 = {
                        foo: "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        baz: 42
                    };

                    Examples of correct code for this rule with the "consistent" option:

                    /*eslint quote-props: ["error", "consistent"]*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42
                    };
                    
                    var object3 = {
                        foo: 'bar',
                        baz: 42
                    };

                    consistent-as-needed

                    Examples of incorrect code for this rule with the "consistent-as-needed" option:

                    /*eslint quote-props: ["error", "consistent-as-needed"]*/
                    
                    var object1 = {
                        foo: "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        'foo': 'bar',
                        'baz': 42
                    };

                    Examples of correct code for this rule with the "consistent-as-needed" option:

                    /*eslint quote-props: ["error", "consistent-as-needed"]*/
                    
                    var object1 = {
                        "foo": "bar",
                        "baz": 42,
                        "qux-lorem": true
                    };
                    
                    var object2 = {
                        foo: 'bar',
                        baz: 42
                    };

                    keywords

                    Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

                    /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
                    
                    var x = {
                        while: 1,
                        volatile: "foo"
                    };

                    Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

                    /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
                    
                    var x = {
                        "prop": 1,
                        "bar": "foo"
                    };

                    unnecessary

                    Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

                    /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
                    
                    var x = {
                        "while": 1,
                        "foo": "bar"  // Would normally have caused a warning
                    };

                    numbers

                    Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

                    /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
                    
                    var x = {
                        100: 1
                    }

                    When Not To Use It

                    If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

                    Further Reading

                    'test' is not defined.
                    Open

                        test('It should init the app',done=>{
                    Severity: Minor
                    Found in tst/index.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. Source: http://eslint.org/docs/rules/

                    Severity
                    Category
                    Status
                    Source
                    Language