SEUNAGBEYE/Drop-Files

View on GitHub

Showing 25 of 25 total issues

Function renderFilePreviewer has 90 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  renderFilePreviewer(){
    const { that } = this.props;
    const { 
      fileExtensionsRegex,
      supportedFormats: { image, video, audio, urls }
Severity: Major
Found in src/components/DropFile.jsx - About 3 hrs to fix

    Function render has 53 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

      render(){
          return (
            <div>
              <button type="button" className="btn btn-primary" 
              data-toggle="modal" data-target="#exampleModalCenter"
    Severity: Major
    Found in example/Example.jsx - About 2 hrs to fix

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

      const uploadToCloudinary = async (files) => {
        const formData = new FormData();
        var fileUrls = []
        return new Promise((resolve, reject) => {
          files.map(async (file) => {
      Severity: Minor
      Found in src/helpers/uploadToCloudinary.js - About 1 hr to fix

        Avoid too many return statements within this function.
        Open

                      return(
                        <div className="file-thumbnails"
                          key={uuid()}
                        >
                          <object data={window.URL.createObjectURL(file)}
        Severity: Major
        Found in src/components/DropFile.jsx - About 30 mins to fix

          Expected space(s) after "if".
          Open

                  if(files.length === fileUrls.length){
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          enforce consistent spacing before and after keywords (keyword-spacing)

          Keywords are syntax elements of JavaScript, such as function and if. These identifiers have special meaning to the language and so often appear in a different color in code editors. As an important part of the language, style guides often refer to the spacing that should be used around keywords. For example, you might have a style guide that says keywords should be always surrounded by spaces, which would mean if-else statements must look like this:

          if (foo) {
              // ...
          } else {
              // ...
          }

          Of course, you could also have a style guide that disallows spaces around keywords.

          Rule Details

          This rule enforces consistent spacing around keywords and keyword-like tokens: as (in module declarations), async (of async functions), await (of await expressions), break, case, catch, class, const, continue, debugger, default, delete, do, else, export, extends, finally, for, from (in module declarations), function, get (of getters), if, import, in, instanceof, let, new, of (in for-of statements), return, set (of setters), static, super, switch, this, throw, try, typeof, var, void, while, with, and yield. This rule is designed carefully not to conflict with other spacing rules: it does not apply to spacing where other rules report problems.

          Options

          This rule has an object option:

          • "before": true (default) requires at least one space before keywords
          • "before": false disallows spaces before keywords
          • "after": true (default) requires at least one space after keywords
          • "after": false disallows spaces after keywords
          • "overrides" allows overriding spacing style for specified keywords

          before

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

          /*eslint keyword-spacing: ["error", { "before": true }]*/
          
          if (foo) {
              //...
          }else if (bar) {
              //...
          }else {
              //...
          }

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

          /*eslint keyword-spacing: ["error", { "before": true }]*/
          /*eslint-env es6*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }
          
          // no conflict with `array-bracket-spacing`
          let a = [this];
          let b = [function() {}];
          
          // no conflict with `arrow-spacing`
          let a = ()=> this.foo;
          
          // no conflict with `block-spacing`
          {function foo() {}}
          
          // no conflict with `comma-spacing`
          let a = [100,this.foo, this.bar];
          
          // not conflict with `computed-property-spacing`
          obj[this.foo] = 0;
          
          // no conflict with `generator-star-spacing`
          function *foo() {}
          
          // no conflict with `key-spacing`
          let obj = {
              foo:function() {}
          };
          
          // no conflict with `object-curly-spacing`
          let obj = {foo: this};
          
          // no conflict with `semi-spacing`
          let a = this;function foo() {}
          
          // no conflict with `space-in-parens`
          (function () {})();
          
          // no conflict with `space-infix-ops`
          if ("foo"in {foo: 0}) {}
          if (10+this.foo<= this.bar) {}
          
          // no conflict with `jsx-curly-spacing`
          let a = 

          Examples of incorrect code for this rule with the { "before": false } option:

          /*eslint keyword-spacing: ["error", { "before": false }]*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }

          Examples of correct code for this rule with the { "before": false } option:

          /*eslint keyword-spacing: ["error", { "before": false }]*/
          
          if (foo) {
              //...
          }else if (bar) {
              //...
          }else {
              //...
          }

          after

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

          /*eslint keyword-spacing: ["error", { "after": true }]*/
          
          if(foo) {
              //...
          } else if(bar) {
              //...
          } else{
              //...
          }

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

          /*eslint keyword-spacing: ["error", { "after": true }]*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }
          
          // not conflict with `array-bracket-spacing`
          let a = [this];
          
          // not conflict with `arrow-spacing`
          let a = ()=> this.foo;
          
          // not conflict with `comma-spacing`
          let a = [100, this.foo, this.bar];
          
          // not conflict with `computed-property-spacing`
          obj[this.foo] = 0;
          
          // not conflict with `generator-star-spacing`
          function* foo() {}
          
          // not conflict with `key-spacing`
          let obj = {
              foo:function() {}
          };
          
          // not conflict with `func-call-spacing`
          class A {
              constructor() {
                  super();
              }
          }
          
          // not conflict with `object-curly-spacing`
          let obj = {foo: this};
          
          // not conflict with `semi-spacing`
          let a = this;function foo() {}
          
          // not conflict with `space-before-function-paren`
          function() {}
          
          // no conflict with `space-infix-ops`
          if ("foo"in{foo: 0}) {}
          if (10+this.foo<= this.bar) {}
          
          // no conflict with `space-unary-ops`
          function* foo(a) {
              return yield+a;
          }
          
          // no conflict with `yield-star-spacing`
          function* foo(a) {
              return yield* a;
          }
          
          // no conflict with `jsx-curly-spacing`
          let a = 

          Examples of incorrect code for this rule with the { "after": false } option:

          /*eslint keyword-spacing: ["error", { "after": false }]*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }

          Examples of correct code for this rule with the { "after": false } option:

          /*eslint keyword-spacing: ["error", { "after": false }]*/
          
          if(foo) {
              //...
          } else if(bar) {
              //...
          } else{
              //...
          }

          overrides

          Examples of correct code for this rule with the { "overrides": { "if": { "after": false }, "for": { "after": false }, "while": { "after": false } } } option:

          /*eslint keyword-spacing: ["error", { "overrides": {
            "if": { "after": false },
            "for": { "after": false },
            "while": { "after": false }
          } }]*/
          
          if(foo) {
              //...
          } else if(bar) {
              //...
          } else {
              //...
          }
          
          for(;;);
          
          while(true) {
            //...
          }

          When Not To Use It

          If you don't want to enforce consistency on keyword spacing, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

          Missing space before opening brace.
          Open

                  if(files.length === fileUrls.length){
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          Require Or Disallow Space Before Blocks (space-before-blocks)

          Consistency is an important part of any style guide. While it is a personal preference where to put the opening brace of blocks, it should be consistent across a whole project. Having an inconsistent style distracts the reader from seeing the important parts of the code.

          Rule Details

          This rule will enforce consistency of spacing before blocks. It is only applied on blocks that don’t begin on a new line.

          • This rule ignores spacing which is between => and a block. The spacing is handled by the arrow-spacing rule.
          • This rule ignores spacing which is between a keyword and a block. The spacing is handled by the keyword-spacing rule.

          Options

          This rule takes one argument. If it is "always" then blocks must always have at least one preceding space. If "never" then all blocks should never have any preceding space. If different spacing is desired for function blocks, keyword blocks and classes, an optional configuration object can be passed as the rule argument to configure the cases separately.

          ( e.g. { "functions": "never", "keywords": "always", "classes": "always" } )

          The default is "always".

          "always"

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

          /*eslint space-before-blocks: "error"*/
          
          if (a){
              b();
          }
          
          function a(){}
          
          for (;;){
              b();
          }
          
          try {} catch(a){}
          
          class Foo{
            constructor(){}
          }

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

          /*eslint space-before-blocks: "error"*/
          
          if (a) {
              b();
          }
          
          if (a) {
              b();
          } else{ /*no error. this is checked by `keyword-spacing` rule.*/
              c();
          }
          
          
          function a() {}
          
          for (;;) {
              b();
          }
          
          try {} catch(a) {}

          "never"

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

          /*eslint space-before-blocks: ["error", "never"]*/
          
          if (a) {
              b();
          }
          
          function a() {}
          
          for (;;) {
              b();
          }
          
          try {} catch(a) {}

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

          /*eslint space-before-blocks: ["error", "never"]*/
          
          if (a){
              b();
          }
          
          function a(){}
          
          for (;;){
              b();
          }
          
          try{} catch(a){}
          
          class Foo{
            constructor(){}
          }

          Examples of incorrect code for this rule when configured { "functions": "never", "keywords": "always", "classes": "never" }:

          /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
          /*eslint-env es6*/
          
          function a() {}
          
          try {} catch(a){}
          
          class Foo{
            constructor() {}
          }

          Examples of correct code for this rule when configured { "functions": "never", "keywords": "always", "classes": "never" }:

          /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "always", "classes": "never" }]*/
          /*eslint-env es6*/
          
          for (;;) {
            // ...
          }
          
          describe(function(){
            // ...
          });
          
          class Foo {
            constructor(){}
          }

          Examples of incorrect code for this rule when configured { "functions": "always", "keywords": "never", "classes": "never" }:

          /*eslint space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
          /*eslint-env es6*/
          
          function a(){}
          
          try {} catch(a) {}
          
          class Foo {
            constructor(){}
          }

          Examples of correct code for this rule when configured { "functions": "always", "keywords": "never", "classes": "never" }:

          /*eslint space-before-blocks: ["error", { "functions": "always", "keywords": "never", "classes": "never" }]*/
          /*eslint-env es6*/
          
          if (a){
            b();
          }
          
          var a = function() {}
          
          class Foo{
            constructor() {}
          }

          Examples of incorrect code for this rule when configured { "functions": "never", "keywords": "never", "classes": "always" }:

          /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
          /*eslint-env es6*/
          
          class Foo{
            constructor(){}
          }

          Examples of correct code for this rule when configured { "functions": "never", "keywords": "never", "classes": "always" }:

          /*eslint space-before-blocks: ["error", { "functions": "never", "keywords": "never", "classes": "always" }]*/
          /*eslint-env es6*/
          
          class Foo {
            constructor(){}
          }

          When Not To Use It

          You can turn this rule off if you are not concerned with the consistency of spacing before blocks.

          Related Rules

          Trailing spaces not allowed.
          Open

                  } 
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          disallow trailing whitespace at the end of lines (no-trailing-spaces)

          Sometimes in the course of editing files, you can end up with extra whitespace at the end of lines. These whitespace differences can be picked up by source control systems and flagged as diffs, causing frustration for developers. While this extra whitespace causes no functional issues, many code conventions require that trailing spaces be removed before check-in.

          Rule Details

          This rule disallows trailing whitespace (spaces, tabs, and other Unicode whitespace characters) at the end of lines.

          Examples of incorrect code for this rule:

          /*eslint no-trailing-spaces: "error"*/
          
          var foo = 0;//•••••
          var baz = 5;//••
          //•••••

          Examples of correct code for this rule:

          /*eslint no-trailing-spaces: "error"*/
          
          var foo = 0;
          var baz = 5;

          Options

          This rule has an object option:

          • "skipBlankLines": false (default) disallows trailing whitespace on empty lines
          • "skipBlankLines": true allows trailing whitespace on empty lines

          skipBlankLines

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

          /*eslint no-trailing-spaces: ["error", { "skipBlankLines": true }]*/
          
          var foo = 0;
          var baz = 5;
          //•••••

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

          Block must not be padded by blank lines.
          Open

            })
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          require or disallow padding within blocks (padded-blocks)

          Some style guides require block statements to start and end with blank lines. The goal is to improve readability by visually separating the block content and the surrounding code.

          if (a) {
          
              b();
          
          }

          Since it's good to have a consistent code style, you should either always write padded blocks or never do it.

          Rule Details

          This rule enforces consistent empty line padding within blocks.

          Options

          This rule has one option, which can be a string option or an object option.

          String option:

          • "always" (default) requires empty lines at the beginning and ending of block statements (except switch statements and classes)
          • "never" disallows empty lines at the beginning and ending of block statements (except switch statements and classes)

          Object option:

          • "blocks" require or disallow padding within block statements
          • "classes" require or disallow padding within classes
          • "switches" require or disallow padding within switch statements

          always

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

          /*eslint padded-blocks: ["error", "always"]*/
          
          if (a) {
              b();
          }
          
          if (a) { b(); }
          
          if (a)
          {
              b();
          }
          
          if (a) {
          
              b();
          }
          
          if (a) {
              b();
          
          }
          
          if (a) {
              // comment
              b();
          
          }

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

          /*eslint padded-blocks: ["error", "always"]*/
          
          if (a) {
          
              b();
          
          }
          
          if (a)
          {
          
              b();
          
          }
          
          if (a) {
          
              // comment
              b();
          
          }

          never

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

          /*eslint padded-blocks: ["error", "never"]*/
          
          if (a) {
          
              b();
          
          }
          
          if (a)
          {
          
              b();
          
          }
          
          if (a) {
          
              b();
          }
          
          if (a) {
              b();
          
          }

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

          /*eslint padded-blocks: ["error", "never"]*/
          
          if (a) {
              b();
          }
          
          if (a)
          {
              b();
          }

          blocks

          Examples of incorrect code for this rule with the { "blocks": "always" } option:

          /*eslint padded-blocks: ["error", { "blocks": "always" }]*/
          
          if (a) {
              b();
          }
          
          if (a) { b(); }
          
          if (a)
          {
              b();
          }
          
          if (a) {
          
              b();
          }
          
          if (a) {
              b();
          
          }
          
          if (a) {
              // comment
              b();
          
          }

          Examples of correct code for this rule with the { "blocks": "always" } option:

          /*eslint padded-blocks: ["error", { "blocks": "always" }]*/
          
          if (a) {
          
              b();
          
          }
          
          if (a)
          {
          
              b();
          
          }
          
          if (a) {
          
              // comment
              b();
          
          }

          Examples of incorrect code for this rule with the { "blocks": "never" } option:

          /*eslint padded-blocks: ["error", { "blocks": "never" }]*/
          
          if (a) {
          
              b();
          
          }
          
          if (a)
          {
          
              b();
          
          }
          
          if (a) {
          
              b();
          }
          
          if (a) {
              b();
          
          }

          Examples of correct code for this rule with the { "blocks": "never" } option:

          /*eslint padded-blocks: ["error", { "blocks": "never" }]*/
          
          if (a) {
              b();
          }
          
          if (a)
          {
              b();
          }

          classes

          Examples of incorrect code for this rule with the { "classes": "always" } option:

          /*eslint padded-blocks: ["error", { "classes": "always" }]*/
          
          class  A {
              constructor(){
              }
          }

          Examples of correct code for this rule with the { "classes": "always" } option:

          /*eslint padded-blocks: ["error", { "classes": "always" }]*/
          
          class  A {
          
              constructor(){
              }
          
          }

          Examples of incorrect code for this rule with the { "classes": "never" } option:

          /*eslint padded-blocks: ["error", { "classes": "never" }]*/
          
          class  A {
          
              constructor(){
              }
          
          }

          Examples of correct code for this rule with the { "classes": "never" } option:

          /*eslint padded-blocks: ["error", { "classes": "never" }]*/
          
          class  A {
              constructor(){
              }
          }

          switches

          Examples of incorrect code for this rule with the { "switches": "always" } option:

          /*eslint padded-blocks: ["error", { "switches": "always" }]*/
          
          switch (a) {
              case 0: foo();
          }

          Examples of correct code for this rule with the { "switches": "always" } option:

          /*eslint padded-blocks: ["error", { "switches": "always" }]*/
          
          switch (a) {
          
              case 0: foo();
          
          }
          
          if (a) {
              b();
          }

          Examples of incorrect code for this rule with the { "switches": "never" } option:

          /*eslint padded-blocks: ["error", { "switches": "never" }]*/
          
          switch (a) {
          
              case 0: foo();
          
          }

          Examples of correct code for this rule with the { "switches": "never" } option:

          /*eslint padded-blocks: ["error", { "switches": "never" }]*/
          
          switch (a) {
              case 0: foo();
          }
          
          if (a) {
          
              b();
          
          }

          When Not To Use It

          You can turn this rule off if you are not concerned with the consistency of padding within blocks. Source: http://eslint.org/docs/rules/

          Newline required at end of file but not found.
          Open

          };
          Severity: Minor
          Found in src/config/config.js by eslint

          require or disallow newline at the end of files (eol-last)

          Trailing newlines in non-empty files are a common UNIX idiom. Benefits of trailing newlines include the ability to concatenate or append to files as well as output files to the terminal without interfering with shell prompts.

          Rule Details

          This rule enforces at least one newline (or absence thereof) at the end of non-empty files.

          Prior to v0.16.0 this rule also enforced that there was only a single line at the end of the file. If you still want this behaviour, consider enabling [no-multiple-empty-lines](no-multiple-empty-lines.md) with maxEOF and/or [no-trailing-spaces](no-trailing-spaces.md).

          Examples of incorrect code for this rule:

          /*eslint eol-last: ["error", "always"]*/
          
          function doSmth() {
            var foo = 2;
          }

          Examples of correct code for this rule:

          /*eslint eol-last: ["error", "always"]*/
          
          function doSmth() {
            var foo = 2;
          }\n

          Options

          This rule has a string option:

          • "always" (default) enforces that files end with a newline (LF)
          • "never" enforces that files do not end with a newline
          • "unix" (deprecated) is identical to "always"
          • "windows" (deprecated) is identical to "always", but will use a CRLF character when autofixing

          Deprecated: The options "unix" and "windows" are deprecated. If you need to enforce a specific linebreak style, use this rule in conjunction with linebreak-style. Source: http://eslint.org/docs/rules/

          Expected space(s) after "try".
          Open

                try{
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          enforce consistent spacing before and after keywords (keyword-spacing)

          Keywords are syntax elements of JavaScript, such as function and if. These identifiers have special meaning to the language and so often appear in a different color in code editors. As an important part of the language, style guides often refer to the spacing that should be used around keywords. For example, you might have a style guide that says keywords should be always surrounded by spaces, which would mean if-else statements must look like this:

          if (foo) {
              // ...
          } else {
              // ...
          }

          Of course, you could also have a style guide that disallows spaces around keywords.

          Rule Details

          This rule enforces consistent spacing around keywords and keyword-like tokens: as (in module declarations), async (of async functions), await (of await expressions), break, case, catch, class, const, continue, debugger, default, delete, do, else, export, extends, finally, for, from (in module declarations), function, get (of getters), if, import, in, instanceof, let, new, of (in for-of statements), return, set (of setters), static, super, switch, this, throw, try, typeof, var, void, while, with, and yield. This rule is designed carefully not to conflict with other spacing rules: it does not apply to spacing where other rules report problems.

          Options

          This rule has an object option:

          • "before": true (default) requires at least one space before keywords
          • "before": false disallows spaces before keywords
          • "after": true (default) requires at least one space after keywords
          • "after": false disallows spaces after keywords
          • "overrides" allows overriding spacing style for specified keywords

          before

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

          /*eslint keyword-spacing: ["error", { "before": true }]*/
          
          if (foo) {
              //...
          }else if (bar) {
              //...
          }else {
              //...
          }

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

          /*eslint keyword-spacing: ["error", { "before": true }]*/
          /*eslint-env es6*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }
          
          // no conflict with `array-bracket-spacing`
          let a = [this];
          let b = [function() {}];
          
          // no conflict with `arrow-spacing`
          let a = ()=> this.foo;
          
          // no conflict with `block-spacing`
          {function foo() {}}
          
          // no conflict with `comma-spacing`
          let a = [100,this.foo, this.bar];
          
          // not conflict with `computed-property-spacing`
          obj[this.foo] = 0;
          
          // no conflict with `generator-star-spacing`
          function *foo() {}
          
          // no conflict with `key-spacing`
          let obj = {
              foo:function() {}
          };
          
          // no conflict with `object-curly-spacing`
          let obj = {foo: this};
          
          // no conflict with `semi-spacing`
          let a = this;function foo() {}
          
          // no conflict with `space-in-parens`
          (function () {})();
          
          // no conflict with `space-infix-ops`
          if ("foo"in {foo: 0}) {}
          if (10+this.foo<= this.bar) {}
          
          // no conflict with `jsx-curly-spacing`
          let a = 

          Examples of incorrect code for this rule with the { "before": false } option:

          /*eslint keyword-spacing: ["error", { "before": false }]*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }

          Examples of correct code for this rule with the { "before": false } option:

          /*eslint keyword-spacing: ["error", { "before": false }]*/
          
          if (foo) {
              //...
          }else if (bar) {
              //...
          }else {
              //...
          }

          after

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

          /*eslint keyword-spacing: ["error", { "after": true }]*/
          
          if(foo) {
              //...
          } else if(bar) {
              //...
          } else{
              //...
          }

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

          /*eslint keyword-spacing: ["error", { "after": true }]*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }
          
          // not conflict with `array-bracket-spacing`
          let a = [this];
          
          // not conflict with `arrow-spacing`
          let a = ()=> this.foo;
          
          // not conflict with `comma-spacing`
          let a = [100, this.foo, this.bar];
          
          // not conflict with `computed-property-spacing`
          obj[this.foo] = 0;
          
          // not conflict with `generator-star-spacing`
          function* foo() {}
          
          // not conflict with `key-spacing`
          let obj = {
              foo:function() {}
          };
          
          // not conflict with `func-call-spacing`
          class A {
              constructor() {
                  super();
              }
          }
          
          // not conflict with `object-curly-spacing`
          let obj = {foo: this};
          
          // not conflict with `semi-spacing`
          let a = this;function foo() {}
          
          // not conflict with `space-before-function-paren`
          function() {}
          
          // no conflict with `space-infix-ops`
          if ("foo"in{foo: 0}) {}
          if (10+this.foo<= this.bar) {}
          
          // no conflict with `space-unary-ops`
          function* foo(a) {
              return yield+a;
          }
          
          // no conflict with `yield-star-spacing`
          function* foo(a) {
              return yield* a;
          }
          
          // no conflict with `jsx-curly-spacing`
          let a = 

          Examples of incorrect code for this rule with the { "after": false } option:

          /*eslint keyword-spacing: ["error", { "after": false }]*/
          
          if (foo) {
              //...
          } else if (bar) {
              //...
          } else {
              //...
          }

          Examples of correct code for this rule with the { "after": false } option:

          /*eslint keyword-spacing: ["error", { "after": false }]*/
          
          if(foo) {
              //...
          } else if(bar) {
              //...
          } else{
              //...
          }

          overrides

          Examples of correct code for this rule with the { "overrides": { "if": { "after": false }, "for": { "after": false }, "while": { "after": false } } } option:

          /*eslint keyword-spacing: ["error", { "overrides": {
            "if": { "after": false },
            "for": { "after": false },
            "while": { "after": false }
          } }]*/
          
          if(foo) {
              //...
          } else if(bar) {
              //...
          } else {
              //...
          }
          
          for(;;);
          
          while(true) {
            //...
          }

          When Not To Use It

          If you don't want to enforce consistency on keyword spacing, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

          Missing semicolon.
          Open

          config.config()
          Severity: Minor
          Found in src/config/config.js by eslint

          require or disallow semicolons instead of ASI (semi)

          JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

          var name = "ESLint"
          var website = "eslint.org";

          On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

          In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

          However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

          return
          {
              name: "ESLint"
          };

          This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

          return;
          {
              name: "ESLint";
          }

          Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

          On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

          var globalCounter = { }
          
          (function () {
              var n = 0
              globalCounter.increment = function () {
                  return ++n
              }
          })()

          In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

          Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

          1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
          2. The line is -- or ++ (in which case it will decrement/increment the next token.)
          3. It is a for(), while(), do, if(), or else, and there is no {
          4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

          Rule Details

          This rule enforces consistent use of semicolons.

          Options

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

          String option:

          • "always" (default) requires semicolons at the end of statements
          • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

          Object option:

          • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

          always

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

          /*eslint semi: ["error", "always"]*/
          
          var name = "ESLint"
          
          object.method = function() {
              // ...
          }

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

          /*eslint semi: "error"*/
          
          var name = "ESLint";
          
          object.method = function() {
              // ...
          };

          never

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

          /*eslint semi: ["error", "never"]*/
          
          var name = "ESLint";
          
          object.method = function() {
              // ...
          };

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

          /*eslint semi: ["error", "never"]*/
          
          var name = "ESLint"
          
          object.method = function() {
              // ...
          }
          
          var name = "ESLint"
          
          ;(function() {
              // ...
          })()

          omitLastInOneLineBlock

          Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

          /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
          
          if (foo) { bar() }
          
          if (foo) { bar(); baz() }

          When Not To Use It

          If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

          Further Reading

          Related Rules

          • [no-extra-semi](no-extra-semi.md)
          • [no-unexpected-multiline](no-unexpected-multiline.md)
          • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

          Newline required at end of file but not found.
          Open

          export default DropFile;
          Severity: Minor
          Found in index.js by eslint

          require or disallow newline at the end of files (eol-last)

          Trailing newlines in non-empty files are a common UNIX idiom. Benefits of trailing newlines include the ability to concatenate or append to files as well as output files to the terminal without interfering with shell prompts.

          Rule Details

          This rule enforces at least one newline (or absence thereof) at the end of non-empty files.

          Prior to v0.16.0 this rule also enforced that there was only a single line at the end of the file. If you still want this behaviour, consider enabling [no-multiple-empty-lines](no-multiple-empty-lines.md) with maxEOF and/or [no-trailing-spaces](no-trailing-spaces.md).

          Examples of incorrect code for this rule:

          /*eslint eol-last: ["error", "always"]*/
          
          function doSmth() {
            var foo = 2;
          }

          Examples of correct code for this rule:

          /*eslint eol-last: ["error", "always"]*/
          
          function doSmth() {
            var foo = 2;
          }\n

          Options

          This rule has a string option:

          • "always" (default) enforces that files end with a newline (LF)
          • "never" enforces that files do not end with a newline
          • "unix" (deprecated) is identical to "always"
          • "windows" (deprecated) is identical to "always", but will use a CRLF character when autofixing

          Deprecated: The options "unix" and "windows" are deprecated. If you need to enforce a specific linebreak style, use this rule in conjunction with linebreak-style. Source: http://eslint.org/docs/rules/

          Missing semicolon.
          Open

            var fileUrls = []
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          require or disallow semicolons instead of ASI (semi)

          JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

          var name = "ESLint"
          var website = "eslint.org";

          On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

          In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

          However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

          return
          {
              name: "ESLint"
          };

          This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

          return;
          {
              name: "ESLint";
          }

          Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

          On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

          var globalCounter = { }
          
          (function () {
              var n = 0
              globalCounter.increment = function () {
                  return ++n
              }
          })()

          In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

          Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

          1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
          2. The line is -- or ++ (in which case it will decrement/increment the next token.)
          3. It is a for(), while(), do, if(), or else, and there is no {
          4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

          Rule Details

          This rule enforces consistent use of semicolons.

          Options

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

          String option:

          • "always" (default) requires semicolons at the end of statements
          • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

          Object option:

          • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

          always

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

          /*eslint semi: ["error", "always"]*/
          
          var name = "ESLint"
          
          object.method = function() {
              // ...
          }

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

          /*eslint semi: "error"*/
          
          var name = "ESLint";
          
          object.method = function() {
              // ...
          };

          never

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

          /*eslint semi: ["error", "never"]*/
          
          var name = "ESLint";
          
          object.method = function() {
              // ...
          };

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

          /*eslint semi: ["error", "never"]*/
          
          var name = "ESLint"
          
          object.method = function() {
              // ...
          }
          
          var name = "ESLint"
          
          ;(function() {
              // ...
          })()

          omitLastInOneLineBlock

          Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

          /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
          
          if (foo) { bar() }
          
          if (foo) { bar(); baz() }

          When Not To Use It

          If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

          Further Reading

          Related Rules

          • [no-extra-semi](no-extra-semi.md)
          • [no-unexpected-multiline](no-unexpected-multiline.md)
          • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

          Trailing spaces not allowed.
          Open

           
          Severity: Minor
          Found in webpack.config.js by eslint

          disallow trailing whitespace at the end of lines (no-trailing-spaces)

          Sometimes in the course of editing files, you can end up with extra whitespace at the end of lines. These whitespace differences can be picked up by source control systems and flagged as diffs, causing frustration for developers. While this extra whitespace causes no functional issues, many code conventions require that trailing spaces be removed before check-in.

          Rule Details

          This rule disallows trailing whitespace (spaces, tabs, and other Unicode whitespace characters) at the end of lines.

          Examples of incorrect code for this rule:

          /*eslint no-trailing-spaces: "error"*/
          
          var foo = 0;//•••••
          var baz = 5;//••
          //•••••

          Examples of correct code for this rule:

          /*eslint no-trailing-spaces: "error"*/
          
          var foo = 0;
          var baz = 5;

          Options

          This rule has an object option:

          • "skipBlankLines": false (default) disallows trailing whitespace on empty lines
          • "skipBlankLines": true allows trailing whitespace on empty lines

          skipBlankLines

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

          /*eslint no-trailing-spaces: ["error", { "skipBlankLines": true }]*/
          
          var foo = 0;
          var baz = 5;
          //•••••

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

          Trailing spaces not allowed.
          Open

                
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          disallow trailing whitespace at the end of lines (no-trailing-spaces)

          Sometimes in the course of editing files, you can end up with extra whitespace at the end of lines. These whitespace differences can be picked up by source control systems and flagged as diffs, causing frustration for developers. While this extra whitespace causes no functional issues, many code conventions require that trailing spaces be removed before check-in.

          Rule Details

          This rule disallows trailing whitespace (spaces, tabs, and other Unicode whitespace characters) at the end of lines.

          Examples of incorrect code for this rule:

          /*eslint no-trailing-spaces: "error"*/
          
          var foo = 0;//•••••
          var baz = 5;//••
          //•••••

          Examples of correct code for this rule:

          /*eslint no-trailing-spaces: "error"*/
          
          var foo = 0;
          var baz = 5;

          Options

          This rule has an object option:

          • "skipBlankLines": false (default) disallows trailing whitespace on empty lines
          • "skipBlankLines": true allows trailing whitespace on empty lines

          skipBlankLines

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

          /*eslint no-trailing-spaces: ["error", { "skipBlankLines": true }]*/
          
          var foo = 0;
          var baz = 5;
          //•••••

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

          Unexpected var, use let or const instead.
          Open

            var fileUrls = []
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          require let or const instead of var (no-var)

          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

          var count = people.length;
          var enoughFood = count > sandwiches.length;
          
          if (enoughFood) {
              var count = sandwiches.length; // accidentally overriding the count variable
              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
          }
          
          // our count variable is no longer accurate
          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

          Rule Details

          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

          Examples

          Examples of incorrect code for this rule:

          /*eslint no-var: "error"*/
          
          var x = "y";
          var CONFIG = {};

          Examples of correct code for this rule:

          /*eslint no-var: "error"*/
          /*eslint-env es6*/
          
          let x = "y";
          const CONFIG = {};

          When Not To Use It

          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

          'FormData' is not defined.
          Open

            const formData = new FormData();
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.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/

          Missing semicolon.
          Open

            })
          Severity: Minor
          Found in src/helpers/uploadToCloudinary.js by eslint

          require or disallow semicolons instead of ASI (semi)

          JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

          var name = "ESLint"
          var website = "eslint.org";

          On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

          In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

          However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

          return
          {
              name: "ESLint"
          };

          This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

          return;
          {
              name: "ESLint";
          }

          Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

          On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

          var globalCounter = { }
          
          (function () {
              var n = 0
              globalCounter.increment = function () {
                  return ++n
              }
          })()

          In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

          Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

          1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
          2. The line is -- or ++ (in which case it will decrement/increment the next token.)
          3. It is a for(), while(), do, if(), or else, and there is no {
          4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

          Rule Details

          This rule enforces consistent use of semicolons.

          Options

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

          String option:

          • "always" (default) requires semicolons at the end of statements
          • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

          Object option:

          • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

          always

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

          /*eslint semi: ["error", "always"]*/
          
          var name = "ESLint"
          
          object.method = function() {
              // ...
          }

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

          /*eslint semi: "error"*/
          
          var name = "ESLint";
          
          object.method = function() {
              // ...
          };

          never

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

          /*eslint semi: ["error", "never"]*/
          
          var name = "ESLint";
          
          object.method = function() {
              // ...
          };

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

          /*eslint semi: ["error", "never"]*/
          
          var name = "ESLint"
          
          object.method = function() {
              // ...
          }
          
          var name = "ESLint"
          
          ;(function() {
              // ...
          })()

          omitLastInOneLineBlock

          Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

          /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
          
          if (foo) { bar() }
          
          if (foo) { bar(); baz() }

          When Not To Use It

          If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

          Further Reading

          Related Rules

          • [no-extra-semi](no-extra-semi.md)
          • [no-unexpected-multiline](no-unexpected-multiline.md)
          • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

          Parsing error: Unexpected token <
          Open

          ReactDOM.render(<Example />, document.getElementById('app'));
          Severity: Minor
          Found in example/app.js by eslint

          For more information visit Source: http://eslint.org/docs/rules/

          ',' should be placed last.
          Open

                , loader: 'url-loader'
          Severity: Minor
          Found in webpack.config.js by eslint

          Comma style (comma-style)

          The Comma Style rule enforces styles for comma-separated lists. There are two comma styles primarily used in JavaScript:

          • The standard style, in which commas are placed at the end of the current line
          • Comma First style, in which commas are placed at the start of the next line

          One of the justifications for using Comma First style is that it can help track missing and trailing commas. These are problematic because missing commas in variable declarations can lead to the leakage of global variables and trailing commas can lead to errors in older versions of IE.

          Rule Details

          This rule enforce consistent comma style in array literals, object literals, and variable declarations.

          This rule does not apply in either of the following cases:

          • comma preceded and followed by linebreak (lone comma)
          • single-line array literals, object literals, and variable declarations

          Options

          This rule has a string option:

          • "last" (default) requires a comma after and on the same line as an array element, object property, or variable declaration
          • "first" requires a comma before and on the same line as an array element, object property, or variable declaration

          This rule also accepts an additional exceptions object:

          • "exceptions" has properties whose names correspond to node types in the abstract syntax tree (AST) of JavaScript code:

            • "ArrayExpression": true ignores comma style in array literals
            • "ArrayPattern": true ignores comma style in array patterns of destructuring
            • "ArrowFunctionExpression": true ignores comma style in the parameters of arrow function expressions
            • "CallExpression": true ignores comma style in the arguments of function calls
            • "FunctionDeclaration": true ignores comma style in the parameters of function declarations
            • "FunctionExpression": true ignores comma style in the parameters of function expressions
            • "ImportDeclaration": true ignores comma style in the specifiers of import declarations
            • "ObjectExpression": true ignores comma style in object literals
            • "ObjectPattern": true ignores comma style in object patterns of destructuring
            • "VariableDeclaration": true ignores comma style in variable declarations

          A way to determine the node types as defined by ESTree is to use the online demo.

          last

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

          /*eslint comma-style: ["error", "last"]*/
          
          var foo = 1
          ,
          bar = 2;
          
          var foo = 1
            , bar = 2;
          
          var foo = ["apples"
                     , "oranges"];
          
          function bar() {
              return {
                  "a": 1
                  ,"b:": 2
              };
          }

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

          /*eslint comma-style: ["error", "last"]*/
          
          var foo = 1, bar = 2;
          
          var foo = 1,
              bar = 2;
          
          var foo = ["apples",
                     "oranges"];
          
          function bar() {
              return {
                  "a": 1,
                  "b:": 2
              };
          }

          first

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

          /*eslint comma-style: ["error", "first"]*/
          
          var foo = 1,
              bar = 2;
          
          var foo = ["apples",
                     "oranges"];
          
          function bar() {
              return {
                  "a": 1,
                  "b:": 2
              };
          }

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

          /*eslint comma-style: ["error", "first"]*/
          
          var foo = 1, bar = 2;
          
          var foo = 1
              ,bar = 2;
          
          var foo = ["apples"
                    ,"oranges"];
          
          function bar() {
              return {
                  "a": 1
                  ,"b:": 2
              };
          }

          exceptions

          An example use case is to enforce comma style only in var statements.

          Examples of incorrect code for this rule with sample "first", { "exceptions": { … } } options:

          /*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
          
          var o = {},
              a = [];

          Examples of correct code for this rule with sample "first", { "exceptions": { … } } options:

          /*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
          
          var o = {fst:1,
                   snd: [1,
                         2]}
            , a = [];

          When Not To Use It

          This rule can safely be turned off if your project does not care about enforcing a consistent comma style.

          Further Reading

          For more information on the Comma First style:

          Related Rules

          Severity
          Category
          Status
          Source
          Language