SEUNAGBEYE/Drop-Files

View on GitHub
src/helpers/uploadToCloudinary.js

Summary

Maintainability
A
1 hr
Test Coverage

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

    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/

    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

      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 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/

    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/

    Missing semicolon.
    Open

            return reject(error)
    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/

    Newline required at end of file but not found.
    Open

    export default uploadToCloudinary;
    Severity: Minor
    Found in src/helpers/uploadToCloudinary.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/

    '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/

    There are no issues that match your filters.

    Category
    Status