lancetw/react-isomorphic-bundle

View on GitHub
src/server/db/dao/posts/postsProvider.js

Summary

Maintainability
F
1 wk
Test Coverage

File postsProvider.js has 639 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import models from 'src/server/db/models'
import hashids from 'src/shared/utils/hashids-plus'
import moment from 'moment'
import {
  sortByOrder,
Severity: Major
Found in src/server/db/dao/posts/postsProvider.js - About 1 day to fix

    Function countPerDayInMonth has 167 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    exports.countPerDayInMonth = function *(year, month) {
      const out = []
      const startDateOut = []
      let _year = year
      let _month = month
    Severity: Major
    Found in src/server/db/dao/posts/postsProvider.js - About 6 hrs to fix

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

      exports.fetchWithCount = function *(offset=0, limit=20, start, end, status=0) {
        let _start = start
        let _end = end
      
        if (!_start) {
      Severity: Major
      Found in src/server/db/dao/posts/postsProvider.js - About 2 hrs to fix

        Function fetch has 52 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        exports.fetch = function *(offset=0, limit=20, start, end) {
          let _start = start
          let _end = end
        
          if (!_start) {
        Severity: Major
        Found in src/server/db/dao/posts/postsProvider.js - About 2 hrs to fix

          Function search has 41 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          exports.search = function *(pattern, status, offset=0, limit=20) {
            return yield Post.findAll({
              offset: offset,
              limit: limit,
              order: [[ 'start_date', 'DESC' ]],
          Severity: Minor
          Found in src/server/db/dao/posts/postsProvider.js - About 1 hr to fix

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

            exports.searchWithCount = function *(pattern, status, offset=0, limit=20) {
              return yield Post.findAndCountAll({
                offset: offset,
                limit: limit,
                order: [[ 'start_date', 'DESC' ]],
            Severity: Minor
            Found in src/server/db/dao/posts/postsProvider.js - About 1 hr to fix

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

              exports.update = function *(hid, post) {
                const fillable = [
                  'type',
                  'prop',
                  'startDate',
              Severity: Minor
              Found in src/server/db/dao/posts/postsProvider.js - About 1 hr to fix

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

                exports.fetchWithUser = function *(offset=0, limit=20, start, end, uid) {
                  if (!uid) return []
                  if (!isFinite(+uid)) return []
                
                  let _start = start
                Severity: Minor
                Found in src/server/db/dao/posts/postsProvider.js - About 1 hr to fix

                  Function fetchWithUser has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                  Open

                  exports.fetchWithUser = function *(offset=0, limit=20, start, end, uid) {
                    if (!uid) return []
                    if (!isFinite(+uid)) return []
                  
                    let _start = start
                  Severity: Minor
                  Found in src/server/db/dao/posts/postsProvider.js - About 45 mins to fix

                  Cognitive Complexity

                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                  A method's cognitive complexity is based on a few simple rules:

                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                  • Code is considered more complex for each "break in the linear flow of the code"
                  • Code is considered more complex when "flow breaking structures are nested"

                  Further reading

                  Function fetchWithUser has 5 arguments (exceeds 4 allowed). Consider refactoring.
                  Open

                  exports.fetchWithUser = function *(offset=0, limit=20, start, end, uid) {
                  Severity: Minor
                  Found in src/server/db/dao/posts/postsProvider.js - About 35 mins to fix

                    Function fetchWithCount has 5 arguments (exceeds 4 allowed). Consider refactoring.
                    Open

                    exports.fetchWithCount = function *(offset=0, limit=20, start, end, status=0) {
                    Severity: Minor
                    Found in src/server/db/dao/posts/postsProvider.js - About 35 mins to fix

                      Function fetchWithCount has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                      Open

                      exports.fetchWithCount = function *(offset=0, limit=20, start, end, status=0) {
                        let _start = start
                        let _end = end
                      
                        if (!_start) {
                      Severity: Minor
                      Found in src/server/db/dao/posts/postsProvider.js - About 35 mins to fix

                      Cognitive Complexity

                      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                      A method's cognitive complexity is based on a few simple rules:

                      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                      • Code is considered more complex for each "break in the linear flow of the code"
                      • Code is considered more complex when "flow breaking structures are nested"

                      Further reading

                      Avoid too many return statements within this function.
                      Open

                        return yield Post.findAll({
                          offset: offset,
                          limit: limit,
                          order: [[ 'id', 'DESC' ]],
                          where: {
                      Severity: Major
                      Found in src/server/db/dao/posts/postsProvider.js - About 30 mins to fix

                        Function fetch has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                        Open

                        exports.fetch = function *(offset=0, limit=20, start, end) {
                          let _start = start
                          let _end = end
                        
                          if (!_start) {
                        Severity: Minor
                        Found in src/server/db/dao/posts/postsProvider.js - About 25 mins to fix

                        Cognitive Complexity

                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                        A method's cognitive complexity is based on a few simple rules:

                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                        • Code is considered more complex for each "break in the linear flow of the code"
                        • Code is considered more complex when "flow breaking structures are nested"

                        Further reading

                        Expected property shorthand.
                        Open

                              limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.loadAllPostId = function *() {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.list = function *(offset=0, limit=20, mode='default') {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.listWithUser = function *(offset=0, limit=20, uid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.listWithUser = function *(offset=0, limit=20, uid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected parentheses around arrow function argument having a body with curly braces.
                        Open

                          endItems.forEach(item => {

                        Require parens in arrow function arguments (arrow-parens)

                        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

                        Rule Details

                        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

                        /*eslint-env es6*/
                        
                        // Bad
                        a => {}
                        
                        // Good
                        (a) => {}

                        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

                        /*eslint-env es6*/
                        
                        // Bad
                        if (a => 2) {
                        }
                        
                        // Good
                        if (a >= 2) {
                        }

                        The rule can also be configured to discourage the use of parens when they are not required:

                        /*eslint-env es6*/
                        
                        // Bad
                        (a) => {}
                        
                        // Good
                        a => {}

                        Options

                        This rule has a string option and an object one.

                        String options are:

                        • "always" (default) requires parens around arguments in all cases.
                        • "as-needed" allows omitting parens when there is only one argument.

                        Object properties for variants of the "as-needed" option:

                        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

                        always

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

                        /*eslint arrow-parens: ["error", "always"]*/
                        /*eslint-env es6*/
                        
                        a => {};
                        a => a;
                        a => {'\n'};
                        a.then(foo => {});
                        a.then(foo => a);
                        a(foo => { if (true) {} });

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

                        /*eslint arrow-parens: ["error", "always"]*/
                        /*eslint-env es6*/
                        
                        () => {};
                        (a) => {};
                        (a) => a;
                        (a) => {'\n'}
                        a.then((foo) => {});
                        a.then((foo) => { if (true) {} });

                        If Statements

                        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

                        /*eslint-env es6*/
                        
                        var a = 1;
                        var b = 2;
                        // ...
                        if (a => b) {
                         console.log('bigger');
                        } else {
                         console.log('smaller');
                        }
                        // outputs 'bigger', not smaller as expected

                        The contents of the if statement is an arrow function, not a comparison.

                        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

                        /*eslint-env es6*/
                        
                        var a = 1;
                        var b = 0;
                        // ...
                        if ((a) => b) {
                         console.log('truthy value returned');
                        } else {
                         console.log('falsey value returned');
                        }
                        // outputs 'truthy value returned'

                        The following is another example of this behavior:

                        /*eslint-env es6*/
                        
                        var a = 1, b = 2, c = 3, d = 4;
                        var f = a => b ? c: d;
                        // f = ?

                        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

                        This should be rewritten like so:

                        /*eslint-env es6*/
                        
                        var a = 1, b = 2, c = 3, d = 4;
                        var f = (a) => b ? c: d;

                        as-needed

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

                        /*eslint arrow-parens: ["error", "as-needed"]*/
                        /*eslint-env es6*/
                        
                        (a) => {};
                        (a) => a;
                        (a) => {'\n'};
                        a.then((foo) => {});
                        a.then((foo) => a);
                        a((foo) => { if (true) {} });

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

                        /*eslint arrow-parens: ["error", "as-needed"]*/
                        /*eslint-env es6*/
                        
                        () => {};
                        a => {};
                        a => a;
                        a => {'\n'};
                        a.then(foo => {});
                        a.then(foo => { if (true) {} });
                        (a, b, c) => a;
                        (a = 10) => a;
                        ([a, b]) => a;
                        ({a, b}) => a;

                        requireForBlockBody

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

                        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
                        /*eslint-env es6*/
                        
                        (a) => a;
                        a => {};
                        a => {'\n'};
                        a.map((x) => x * x);
                        a.map(x => {
                          return x * x;
                        });
                        a.then(foo => {});

                        Examples of correct code for the { "requireForBlockBody": true } option:

                        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
                        /*eslint-env es6*/
                        
                        (a) => {};
                        (a) => {'\n'};
                        a => ({});
                        () => {};
                        a => a;
                        a.then((foo) => {});
                        a.then((foo) => { if (true) {} });
                        a((foo) => { if (true) {} });
                        (a, b, c) => a;
                        (a = 10) => a;
                        ([a, b]) => a;
                        ({a, b}) => a;

                        Further Reading

                        Unexpected string concatenation.
                        Open

                                    $like: '%' + pattern + '%'

                        Suggest using template literals instead of string concatenation. (prefer-template)

                        In ES2015 (ES6), we can use template literals instead of string concatenation.

                        var str = "Hello, " + name + "!";
                        /*eslint-env es6*/
                        
                        var str = `Hello, ${name}!`;

                        Rule Details

                        This rule is aimed to flag usage of + operators with strings.

                        Examples

                        Examples of incorrect code for this rule:

                        /*eslint prefer-template: "error"*/
                        
                        var str = "Hello, " + name + "!";
                        var str = "Time: " + (12 * 60 * 60 * 1000);

                        Examples of correct code for this rule:

                        /*eslint prefer-template: "error"*/
                        /*eslint-env es6*/
                        
                        var str = "Hello World!";
                        var str = `Hello, ${name}!`;
                        var str = `Time: ${12 * 60 * 60 * 1000}`;
                        
                        // This is reported by `no-useless-concat`.
                        var str = "Hello, " + "World!";

                        When Not To Use It

                        This rule should not be used in ES3/5 environments.

                        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

                        Related Rules

                        Missing space after *.
                        Open

                        exports.create = function *(post) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                              offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                              offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.listWithType = function *(type, offset=0, limit=20) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                              offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected parentheses around arrow function argument having a body with curly braces.
                        Open

                          startItems.forEach(item => {

                        Require parens in arrow function arguments (arrow-parens)

                        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

                        Rule Details

                        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

                        /*eslint-env es6*/
                        
                        // Bad
                        a => {}
                        
                        // Good
                        (a) => {}

                        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

                        /*eslint-env es6*/
                        
                        // Bad
                        if (a => 2) {
                        }
                        
                        // Good
                        if (a >= 2) {
                        }

                        The rule can also be configured to discourage the use of parens when they are not required:

                        /*eslint-env es6*/
                        
                        // Bad
                        (a) => {}
                        
                        // Good
                        a => {}

                        Options

                        This rule has a string option and an object one.

                        String options are:

                        • "always" (default) requires parens around arguments in all cases.
                        • "as-needed" allows omitting parens when there is only one argument.

                        Object properties for variants of the "as-needed" option:

                        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

                        always

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

                        /*eslint arrow-parens: ["error", "always"]*/
                        /*eslint-env es6*/
                        
                        a => {};
                        a => a;
                        a => {'\n'};
                        a.then(foo => {});
                        a.then(foo => a);
                        a(foo => { if (true) {} });

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

                        /*eslint arrow-parens: ["error", "always"]*/
                        /*eslint-env es6*/
                        
                        () => {};
                        (a) => {};
                        (a) => a;
                        (a) => {'\n'}
                        a.then((foo) => {});
                        a.then((foo) => { if (true) {} });

                        If Statements

                        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

                        /*eslint-env es6*/
                        
                        var a = 1;
                        var b = 2;
                        // ...
                        if (a => b) {
                         console.log('bigger');
                        } else {
                         console.log('smaller');
                        }
                        // outputs 'bigger', not smaller as expected

                        The contents of the if statement is an arrow function, not a comparison.

                        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

                        /*eslint-env es6*/
                        
                        var a = 1;
                        var b = 0;
                        // ...
                        if ((a) => b) {
                         console.log('truthy value returned');
                        } else {
                         console.log('falsey value returned');
                        }
                        // outputs 'truthy value returned'

                        The following is another example of this behavior:

                        /*eslint-env es6*/
                        
                        var a = 1, b = 2, c = 3, d = 4;
                        var f = a => b ? c: d;
                        // f = ?

                        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

                        This should be rewritten like so:

                        /*eslint-env es6*/
                        
                        var a = 1, b = 2, c = 3, d = 4;
                        var f = (a) => b ? c: d;

                        as-needed

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

                        /*eslint arrow-parens: ["error", "as-needed"]*/
                        /*eslint-env es6*/
                        
                        (a) => {};
                        (a) => a;
                        (a) => {'\n'};
                        a.then((foo) => {});
                        a.then((foo) => a);
                        a((foo) => { if (true) {} });

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

                        /*eslint arrow-parens: ["error", "as-needed"]*/
                        /*eslint-env es6*/
                        
                        () => {};
                        a => {};
                        a => a;
                        a => {'\n'};
                        a.then(foo => {});
                        a.then(foo => { if (true) {} });
                        (a, b, c) => a;
                        (a = 10) => a;
                        ([a, b]) => a;
                        ({a, b}) => a;

                        requireForBlockBody

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

                        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
                        /*eslint-env es6*/
                        
                        (a) => a;
                        a => {};
                        a => {'\n'};
                        a.map((x) => x * x);
                        a.map(x => {
                          return x * x;
                        });
                        a.then(foo => {});

                        Examples of correct code for the { "requireForBlockBody": true } option:

                        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
                        /*eslint-env es6*/
                        
                        (a) => {};
                        (a) => {'\n'};
                        a => ({});
                        () => {};
                        a => a;
                        a.then((foo) => {});
                        a.then((foo) => { if (true) {} });
                        a((foo) => { if (true) {} });
                        (a, b, c) => a;
                        (a = 10) => a;
                        ([a, b]) => a;
                        ({a, b}) => a;

                        Further Reading

                        Expected property shorthand.
                        Open

                              offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.fetch = function *(offset=0, limit=20, start, end) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.update = function *(hid, post) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.searchWithCount = function *(pattern, status, offset=0, limit=20) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            where: { id: id, status: 0 },

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.countPerDayInMonth = function *(year, month) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                          const post = yield Post.findOne({ where: { id: id } })

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                              status: status,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.loadAllCid = function *() {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.create = function *(post) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.listWithOg = function *(offset=0, limit=20, cid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.loadAllPostId = function *() {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Assignment can be replaced with operator assignment.
                        Open

                                out[start] = out[start] + 1

                        require or disallow assignment operator shorthand where possible (operator-assignment)

                        JavaScript provides shorthand operators that combine variable assignment and some simple mathematical operations. For example, x = x + 4 can be shortened to x += 4. The supported shorthand forms are as follows:

                        Shorthand | Separate
                        -----------|------------
                         x += y    | x = x + y
                         x -= y    | x = x - y
                         x *= y    | x = x * y
                         x /= y    | x = x / y
                         x %= y    | x = x % y
                         x <<= y   | x = x << y
                         x >>= y   | x = x >> y
                         x >>>= y  | x = x >>> y
                         x &= y    | x = x & y
                         x ^= y    | x = x ^ y
                         x |= y    | x = x | y

                        Rule Details

                        This rule requires or disallows assignment operator shorthand where possible.

                        Options

                        This rule has a single string option:

                        • "always" (default) requires assignment operator shorthand where possible
                        • "never" disallows assignment operator shorthand

                        always

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = x + y;
                        x = y * x;
                        x[0] = x[0] / y;
                        x.y = x.y << z;

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = y;
                        x += y;
                        x = y * z;
                        x = (x * y) * z;
                        x[0] /= y;
                        x[foo()] = x[foo()] % 2;
                        x = y + x; // `+` is not always commutative (e.g. x = "abc")

                        never

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x *= y;
                        x ^= (y + z) / foo();

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x = x + y;
                        x.y = x.y / a.b;

                        When Not To Use It

                        Use of operator assignment shorthand is a stylistic choice. Leaving this rule turned off would allow developers to choose which style is more readable on a case-by-case basis. Source: http://eslint.org/docs/rules/

                        Assignment can be replaced with operator assignment.
                        Open

                                  out[i] = out[i] + 1

                        require or disallow assignment operator shorthand where possible (operator-assignment)

                        JavaScript provides shorthand operators that combine variable assignment and some simple mathematical operations. For example, x = x + 4 can be shortened to x += 4. The supported shorthand forms are as follows:

                        Shorthand | Separate
                        -----------|------------
                         x += y    | x = x + y
                         x -= y    | x = x - y
                         x *= y    | x = x * y
                         x /= y    | x = x / y
                         x %= y    | x = x % y
                         x <<= y   | x = x << y
                         x >>= y   | x = x >> y
                         x >>>= y  | x = x >>> y
                         x &= y    | x = x & y
                         x ^= y    | x = x ^ y
                         x |= y    | x = x | y

                        Rule Details

                        This rule requires or disallows assignment operator shorthand where possible.

                        Options

                        This rule has a single string option:

                        • "always" (default) requires assignment operator shorthand where possible
                        • "never" disallows assignment operator shorthand

                        always

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = x + y;
                        x = y * x;
                        x[0] = x[0] / y;
                        x.y = x.y << z;

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = y;
                        x += y;
                        x = y * z;
                        x = (x * y) * z;
                        x[0] /= y;
                        x[foo()] = x[foo()] % 2;
                        x = y + x; // `+` is not always commutative (e.g. x = "abc")

                        never

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x *= y;
                        x ^= (y + z) / foo();

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x = x + y;
                        x.y = x.y / a.b;

                        When Not To Use It

                        Use of operator assignment shorthand is a stylistic choice. Leaving this rule turned off would allow developers to choose which style is more readable on a case-by-case basis. Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.destroy = function *(hid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected string concatenation.
                        Open

                                    $like: '%' + pattern + '%'

                        Suggest using template literals instead of string concatenation. (prefer-template)

                        In ES2015 (ES6), we can use template literals instead of string concatenation.

                        var str = "Hello, " + name + "!";
                        /*eslint-env es6*/
                        
                        var str = `Hello, ${name}!`;

                        Rule Details

                        This rule is aimed to flag usage of + operators with strings.

                        Examples

                        Examples of incorrect code for this rule:

                        /*eslint prefer-template: "error"*/
                        
                        var str = "Hello, " + name + "!";
                        var str = "Time: " + (12 * 60 * 60 * 1000);

                        Examples of correct code for this rule:

                        /*eslint prefer-template: "error"*/
                        /*eslint-env es6*/
                        
                        var str = "Hello World!";
                        var str = `Hello, ${name}!`;
                        var str = `Time: ${12 * 60 * 60 * 1000}`;
                        
                        // This is reported by `no-useless-concat`.
                        var str = "Hello, " + "World!";

                        When Not To Use It

                        This rule should not be used in ES3/5 environments.

                        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

                        Related Rules

                        Missing space after *.
                        Open

                        exports.listAllWithCount = function *(offset=0, limit=20, status=0) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.updateGeo = function *(hid, geo) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.search = function *(pattern, status, offset=0, limit=20) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected string concatenation.
                        Open

                                    $like: '%' + pattern + '%'

                        Suggest using template literals instead of string concatenation. (prefer-template)

                        In ES2015 (ES6), we can use template literals instead of string concatenation.

                        var str = "Hello, " + name + "!";
                        /*eslint-env es6*/
                        
                        var str = `Hello, ${name}!`;

                        Rule Details

                        This rule is aimed to flag usage of + operators with strings.

                        Examples

                        Examples of incorrect code for this rule:

                        /*eslint prefer-template: "error"*/
                        
                        var str = "Hello, " + name + "!";
                        var str = "Time: " + (12 * 60 * 60 * 1000);

                        Examples of correct code for this rule:

                        /*eslint prefer-template: "error"*/
                        /*eslint-env es6*/
                        
                        var str = "Hello World!";
                        var str = `Hello, ${name}!`;
                        var str = `Time: ${12 * 60 * 60 * 1000}`;
                        
                        // This is reported by `no-useless-concat`.
                        var str = "Hello, " + "World!";

                        When Not To Use It

                        This rule should not be used in ES3/5 environments.

                        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

                        Related Rules

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.countPerDayInMonth = function *(year, month) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            where: { id: id }

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.loadAllCid = function *() {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.fetch = function *(offset=0, limit=20, start, end) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Assignment can be replaced with operator assignment.
                        Open

                                  out[i] = out[i] + 1

                        require or disallow assignment operator shorthand where possible (operator-assignment)

                        JavaScript provides shorthand operators that combine variable assignment and some simple mathematical operations. For example, x = x + 4 can be shortened to x += 4. The supported shorthand forms are as follows:

                        Shorthand | Separate
                        -----------|------------
                         x += y    | x = x + y
                         x -= y    | x = x - y
                         x *= y    | x = x * y
                         x /= y    | x = x / y
                         x %= y    | x = x % y
                         x <<= y   | x = x << y
                         x >>= y   | x = x >> y
                         x >>>= y  | x = x >>> y
                         x &= y    | x = x & y
                         x ^= y    | x = x ^ y
                         x |= y    | x = x | y

                        Rule Details

                        This rule requires or disallows assignment operator shorthand where possible.

                        Options

                        This rule has a single string option:

                        • "always" (default) requires assignment operator shorthand where possible
                        • "never" disallows assignment operator shorthand

                        always

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = x + y;
                        x = y * x;
                        x[0] = x[0] / y;
                        x.y = x.y << z;

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = y;
                        x += y;
                        x = y * z;
                        x = (x * y) * z;
                        x[0] /= y;
                        x[foo()] = x[foo()] % 2;
                        x = y + x; // `+` is not always commutative (e.g. x = "abc")

                        never

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x *= y;
                        x ^= (y + z) / foo();

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x = x + y;
                        x.y = x.y / a.b;

                        When Not To Use It

                        Use of operator assignment shorthand is a stylistic choice. Leaving this rule turned off would allow developers to choose which style is more readable on a case-by-case basis. Source: http://eslint.org/docs/rules/

                        Missing space after *.
                        Open

                        exports.search = function *(pattern, status, offset=0, limit=20) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                              status: status,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected string concatenation.
                        Open

                                    $like: '%' + pattern + '%'

                        Suggest using template literals instead of string concatenation. (prefer-template)

                        In ES2015 (ES6), we can use template literals instead of string concatenation.

                        var str = "Hello, " + name + "!";
                        /*eslint-env es6*/
                        
                        var str = `Hello, ${name}!`;

                        Rule Details

                        This rule is aimed to flag usage of + operators with strings.

                        Examples

                        Examples of incorrect code for this rule:

                        /*eslint prefer-template: "error"*/
                        
                        var str = "Hello, " + name + "!";
                        var str = "Time: " + (12 * 60 * 60 * 1000);

                        Examples of correct code for this rule:

                        /*eslint prefer-template: "error"*/
                        /*eslint-env es6*/
                        
                        var str = "Hello World!";
                        var str = `Hello, ${name}!`;
                        var str = `Time: ${12 * 60 * 60 * 1000}`;
                        
                        // This is reported by `no-useless-concat`.
                        var str = "Hello, " + "World!";

                        When Not To Use It

                        This rule should not be used in ES3/5 environments.

                        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

                        Related Rules

                        Missing space after *.
                        Open

                        exports.list = function *(offset=0, limit=20, mode='default') {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected parentheses around arrow function argument having a body with curly braces.
                        Open

                          duringItems.forEach(item => {

                        Require parens in arrow function arguments (arrow-parens)

                        Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.

                        Rule Details

                        This rule enforces parentheses around arrow function parameters regardless of arity. For example:

                        /*eslint-env es6*/
                        
                        // Bad
                        a => {}
                        
                        // Good
                        (a) => {}

                        Following this style will help you find arrow functions (=>) which may be mistakenly included in a condition when a comparison such as >= was the intent.

                        /*eslint-env es6*/
                        
                        // Bad
                        if (a => 2) {
                        }
                        
                        // Good
                        if (a >= 2) {
                        }

                        The rule can also be configured to discourage the use of parens when they are not required:

                        /*eslint-env es6*/
                        
                        // Bad
                        (a) => {}
                        
                        // Good
                        a => {}

                        Options

                        This rule has a string option and an object one.

                        String options are:

                        • "always" (default) requires parens around arguments in all cases.
                        • "as-needed" allows omitting parens when there is only one argument.

                        Object properties for variants of the "as-needed" option:

                        • "requireForBlockBody": true modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).

                        always

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

                        /*eslint arrow-parens: ["error", "always"]*/
                        /*eslint-env es6*/
                        
                        a => {};
                        a => a;
                        a => {'\n'};
                        a.then(foo => {});
                        a.then(foo => a);
                        a(foo => { if (true) {} });

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

                        /*eslint arrow-parens: ["error", "always"]*/
                        /*eslint-env es6*/
                        
                        () => {};
                        (a) => {};
                        (a) => a;
                        (a) => {'\n'}
                        a.then((foo) => {});
                        a.then((foo) => { if (true) {} });

                        If Statements

                        One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:

                        /*eslint-env es6*/
                        
                        var a = 1;
                        var b = 2;
                        // ...
                        if (a => b) {
                         console.log('bigger');
                        } else {
                         console.log('smaller');
                        }
                        // outputs 'bigger', not smaller as expected

                        The contents of the if statement is an arrow function, not a comparison.

                        If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.

                        /*eslint-env es6*/
                        
                        var a = 1;
                        var b = 0;
                        // ...
                        if ((a) => b) {
                         console.log('truthy value returned');
                        } else {
                         console.log('falsey value returned');
                        }
                        // outputs 'truthy value returned'

                        The following is another example of this behavior:

                        /*eslint-env es6*/
                        
                        var a = 1, b = 2, c = 3, d = 4;
                        var f = a => b ? c: d;
                        // f = ?

                        f is an arrow function which takes a as an argument and returns the result of b ? c: d.

                        This should be rewritten like so:

                        /*eslint-env es6*/
                        
                        var a = 1, b = 2, c = 3, d = 4;
                        var f = (a) => b ? c: d;

                        as-needed

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

                        /*eslint arrow-parens: ["error", "as-needed"]*/
                        /*eslint-env es6*/
                        
                        (a) => {};
                        (a) => a;
                        (a) => {'\n'};
                        a.then((foo) => {});
                        a.then((foo) => a);
                        a((foo) => { if (true) {} });

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

                        /*eslint arrow-parens: ["error", "as-needed"]*/
                        /*eslint-env es6*/
                        
                        () => {};
                        a => {};
                        a => a;
                        a => {'\n'};
                        a.then(foo => {});
                        a.then(foo => { if (true) {} });
                        (a, b, c) => a;
                        (a = 10) => a;
                        ([a, b]) => a;
                        ({a, b}) => a;

                        requireForBlockBody

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

                        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
                        /*eslint-env es6*/
                        
                        (a) => a;
                        a => {};
                        a => {'\n'};
                        a.map((x) => x * x);
                        a.map(x => {
                          return x * x;
                        });
                        a.then(foo => {});

                        Examples of correct code for the { "requireForBlockBody": true } option:

                        /*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
                        /*eslint-env es6*/
                        
                        (a) => {};
                        (a) => {'\n'};
                        a => ({});
                        () => {};
                        a => a;
                        a.then((foo) => {});
                        a.then((foo) => { if (true) {} });
                        a((foo) => { if (true) {} });
                        (a, b, c) => a;
                        (a = 10) => a;
                        ([a, b]) => a;
                        ({a, b}) => a;

                        Further Reading

                        Missing space after *.
                        Open

                        exports.listWithCprop = function *(cprop, offset=0, limit=20, nocontent=false) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.update = function *(hid, post) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                              limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                              limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Assignment can be replaced with operator assignment.
                        Open

                                  out[i] = out[i] + 1

                        require or disallow assignment operator shorthand where possible (operator-assignment)

                        JavaScript provides shorthand operators that combine variable assignment and some simple mathematical operations. For example, x = x + 4 can be shortened to x += 4. The supported shorthand forms are as follows:

                        Shorthand | Separate
                        -----------|------------
                         x += y    | x = x + y
                         x -= y    | x = x - y
                         x *= y    | x = x * y
                         x /= y    | x = x / y
                         x %= y    | x = x % y
                         x <<= y   | x = x << y
                         x >>= y   | x = x >> y
                         x >>>= y  | x = x >>> y
                         x &= y    | x = x & y
                         x ^= y    | x = x ^ y
                         x |= y    | x = x | y

                        Rule Details

                        This rule requires or disallows assignment operator shorthand where possible.

                        Options

                        This rule has a single string option:

                        • "always" (default) requires assignment operator shorthand where possible
                        • "never" disallows assignment operator shorthand

                        always

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = x + y;
                        x = y * x;
                        x[0] = x[0] / y;
                        x.y = x.y << z;

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

                        /*eslint operator-assignment: ["error", "always"]*/
                        
                        x = y;
                        x += y;
                        x = y * z;
                        x = (x * y) * z;
                        x[0] /= y;
                        x[foo()] = x[foo()] % 2;
                        x = y + x; // `+` is not always commutative (e.g. x = "abc")

                        never

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x *= y;
                        x ^= (y + z) / foo();

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

                        /*eslint operator-assignment: ["error", "never"]*/
                        
                        x = x + y;
                        x.y = x.y / a.b;

                        When Not To Use It

                        Use of operator assignment shorthand is a stylistic choice. Leaving this rule turned off would allow developers to choose which style is more readable on a case-by-case basis. Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        There should be no spaces inside this paren.
                        Open

                          out[0] = reduce(compact(out), (sum, n) => sum + n )

                        Disallow or enforce spaces inside of parentheses (space-in-parens)

                        Some style guides require or disallow spaces inside of parentheses:

                        foo( 'bar' );
                        var x = ( 1 + 2 ) * 3;
                        
                        foo('bar');
                        var x = (1 + 2) * 3;

                        Rule Details

                        This rule will enforce consistency of spacing directly inside of parentheses, by disallowing or requiring one or more spaces to the right of ( and to the left of ). In either case, () will still be allowed.

                        Options

                        There are two options for this rule:

                        • "never" (default) enforces zero spaces inside of parentheses
                        • "always" enforces a space inside of parentheses

                        Depending on your coding conventions, you can choose either option by specifying it in your configuration:

                        "space-in-parens": ["error", "always"]

                        "never"

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

                        /*eslint space-in-parens: ["error", "never"]*/
                        
                        foo( 'bar');
                        foo('bar' );
                        foo( 'bar' );
                        
                        var foo = ( 1 + 2 ) * 3;
                        ( function () { return 'bar'; }() );

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

                        /*eslint space-in-parens: ["error", "never"]*/
                        
                        foo();
                        
                        foo('bar');
                        
                        var foo = (1 + 2) * 3;
                        (function () { return 'bar'; }());

                        "always"

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

                        /*eslint space-in-parens: ["error", "always"]*/
                        
                        foo( 'bar');
                        foo('bar' );
                        foo('bar');
                        
                        var foo = (1 + 2) * 3;
                        (function () { return 'bar'; }());

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

                        /*eslint space-in-parens: ["error", "always"]*/
                        
                        foo();
                        
                        foo( 'bar' );
                        
                        var foo = ( 1 + 2 ) * 3;
                        ( function () { return 'bar'; }() );

                        Exceptions

                        An object literal may be used as a third array item to specify exceptions, with the key "exceptions" and an array as the value. These exceptions work in the context of the first option. That is, if "always" is set to enforce spacing, then any "exception" will disallow spacing. Conversely, if "never" is set to disallow spacing, then any "exception" will enforce spacing.

                        The following exceptions are available: ["{}", "[]", "()", "empty"].

                        Examples of incorrect code for this rule with the "never", { "exceptions": ["{}"] } option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/
                        
                        foo({bar: 'baz'});
                        foo(1, {bar: 'baz'});

                        Examples of correct code for this rule with the "never", { "exceptions": ["{}"] } option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["{}"] }]*/
                        
                        foo( {bar: 'baz'} );
                        foo(1, {bar: 'baz'} );

                        Examples of incorrect code for this rule with the "always", { "exceptions": ["{}"] } option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/
                        
                        foo( {bar: 'baz'} );
                        foo( 1, {bar: 'baz'} );

                        Examples of correct code for this rule with the "always", { "exceptions": ["{}"] } option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["{}"] }]*/
                        
                        foo({bar: 'baz'});
                        foo( 1, {bar: 'baz'});

                        Examples of incorrect code for this rule with the "never", { "exceptions": ["[]"] } option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/
                        
                        foo([bar, baz]);
                        foo([bar, baz], 1);

                        Examples of correct code for this rule with the "never", { "exceptions": ["[]"] } option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["[]"] }]*/
                        
                        foo( [bar, baz] );
                        foo( [bar, baz], 1);

                        Examples of incorrect code for this rule with the "always", { "exceptions": ["[]"] } option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/
                        
                        foo( [bar, baz] );
                        foo( [bar, baz], 1 );

                        Examples of correct code for this rule with the "always", { "exceptions": ["[]"] } option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["[]"] }]*/
                        
                        foo([bar, baz]);
                        foo([bar, baz], 1 );

                        Examples of incorrect code for this rule with the "never", { "exceptions": ["()"] }] option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/
                        
                        foo((1 + 2));
                        foo((1 + 2), 1);

                        Examples of correct code for this rule with the "never", { "exceptions": ["()"] }] option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["()"] }]*/
                        
                        foo( (1 + 2) );
                        foo( (1 + 2), 1);

                        Examples of incorrect code for this rule with the "always", { "exceptions": ["()"] }] option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/
                        
                        foo( ( 1 + 2 ) );
                        foo( ( 1 + 2 ), 1 );

                        Examples of correct code for this rule with the "always", { "exceptions": ["()"] }] option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["()"] }]*/
                        
                        foo(( 1 + 2 ));
                        foo(( 1 + 2 ), 1 );

                        The "empty" exception concerns empty parentheses, and works the same way as the other exceptions, inverting the first option.

                        Example of incorrect code for this rule with the "never", { "exceptions": ["empty"] }] option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/
                        
                        foo();

                        Example of correct code for this rule with the "never", { "exceptions": ["empty"] }] option:

                        /*eslint space-in-parens: ["error", "never", { "exceptions": ["empty"] }]*/
                        
                        foo( );

                        Example of incorrect code for this rule with the "always", { "exceptions": ["empty"] }] option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/
                        
                        foo( );

                        Example of correct code for this rule with the "always", { "exceptions": ["empty"] }] option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["empty"] }]*/
                        
                        foo();

                        You can include multiple entries in the "exceptions" array.

                        Examples of incorrect code for this rule with the "always", { "exceptions": ["{}", "[]"] }] option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/
                        
                        bar( {bar:'baz'} );
                        baz( 1, [1,2] );
                        foo( {bar: 'baz'}, [1, 2] );

                        Examples of correct code for this rule with the "always", { "exceptions": ["{}", "[]"] }] option:

                        /*eslint space-in-parens: ["error", "always", { "exceptions": ["{}", "[]"] }]*/
                        
                        bar({bar:'baz'});
                        baz( 1, [1,2]);
                        foo({bar: 'baz'}, [1, 2]);

                        When Not To Use It

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

                        Related Rules

                        Unexpected space before *.
                        Open

                        exports.updateGeo = function *(hid, geo) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            offset: offset,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected string concatenation.
                        Open

                                    $like: '%' + pattern + '%'

                        Suggest using template literals instead of string concatenation. (prefer-template)

                        In ES2015 (ES6), we can use template literals instead of string concatenation.

                        var str = "Hello, " + name + "!";
                        /*eslint-env es6*/
                        
                        var str = `Hello, ${name}!`;

                        Rule Details

                        This rule is aimed to flag usage of + operators with strings.

                        Examples

                        Examples of incorrect code for this rule:

                        /*eslint prefer-template: "error"*/
                        
                        var str = "Hello, " + name + "!";
                        var str = "Time: " + (12 * 60 * 60 * 1000);

                        Examples of correct code for this rule:

                        /*eslint prefer-template: "error"*/
                        /*eslint-env es6*/
                        
                        var str = "Hello World!";
                        var str = `Hello, ${name}!`;
                        var str = `Time: ${12 * 60 * 60 * 1000}`;
                        
                        // This is reported by `no-useless-concat`.
                        var str = "Hello, " + "World!";

                        When Not To Use It

                        This rule should not be used in ES3/5 environments.

                        In ES2015 (ES6) or later, if you don't want to be notified about string concatenation, you can safely disable this rule.

                        Related Rules

                        Unexpected space before *.
                        Open

                        exports.load = function *(hid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.load = function *(hid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.listWithCprop = function *(cprop, offset=0, limit=20, nocontent=false) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.fetchWithUser = function *(offset=0, limit=20, start, end, uid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.fetchWithUser = function *(offset=0, limit=20, start, end, uid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.listAllWithCount = function *(offset=0, limit=20, status=0) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.fetchWithCount = function *(offset=0, limit=20, start, end, status=0) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.destroy = function *(hid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.searchWithCount = function *(pattern, status, offset=0, limit=20) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                              limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Unexpected space before *.
                        Open

                        exports.listWithType = function *(type, offset=0, limit=20) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Unexpected space before *.
                        Open

                        exports.listWithOg = function *(offset=0, limit=20, cid) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Missing space after *.
                        Open

                        exports.fetchWithCount = function *(offset=0, limit=20, start, end, status=0) {

                        Enforce spacing around the * in generator functions (generator-star-spacing)

                        Generators are a new type of function in ECMAScript 6 that can return multiple values over time. These special functions are indicated by placing an * after the function keyword.

                        Here is an example of a generator function:

                        /*eslint-env es6*/
                        
                        function* generator() {
                            yield "44";
                            yield "55";
                        }

                        This is also valid:

                        /*eslint-env es6*/
                        
                        function *generator() {
                            yield "44";
                            yield "55";
                        }

                        This is valid as well:

                        /*eslint-env es6*/
                        
                        function * generator() {
                            yield "44";
                            yield "55";
                        }

                        To keep a sense of consistency when using generators this rule enforces a single position for the *.

                        Rule Details

                        This rule aims to enforce spacing around the * of generator functions.

                        Options

                        The rule takes one option, an object, which has two keys before and after having boolean values true or false.

                        • before enforces spacing between the * and the function keyword. If it is true, a space is required, otherwise spaces are disallowed.

                        In object literal shorthand methods, spacing before the * is not checked, as they lack a function keyword.

                        • after enforces spacing between the * and the function name (or the opening parenthesis for anonymous generator functions). If it is true, a space is required, otherwise spaces are disallowed.

                        The default is {"before": true, "after": false}.

                        An example configuration:

                        "generator-star-spacing": ["error", {"before": true, "after": false}]

                        And the option has shorthand as a string keyword:

                        • {"before": true, "after": false}"before"
                        • {"before": false, "after": true}"after"
                        • {"before": true, "after": true}"both"
                        • {"before": false, "after": false}"neither"

                        An example of shorthand configuration:

                        "generator-star-spacing": ["error", "after"]

                        Examples

                        before

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function *generator() {}
                        
                        var anonymous = function *() {};
                        
                        var shorthand = { *generator() {} };

                        after

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function* generator() {}
                        
                        var anonymous = function* () {};
                        
                        var shorthand = { * generator() {} };

                        both

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

                        /*eslint generator-star-spacing: ["error", {"before": true, "after": true}]*/
                        /*eslint-env es6*/
                        
                        function * generator() {}
                        
                        var anonymous = function * () {};
                        
                        var shorthand = { * generator() {} };

                        neither

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

                        /*eslint generator-star-spacing: ["error", {"before": false, "after": false}]*/
                        /*eslint-env es6*/
                        
                        function*generator() {}
                        
                        var anonymous = function*() {};
                        
                        var shorthand = { *generator() {} };

                        When Not To Use It

                        If your project will not be using generators or you are not concerned with spacing consistency, you do not need this rule.

                        Further Reading

                        Expected property shorthand.
                        Open

                            where: { id: id }

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        Expected property shorthand.
                        Open

                            limit: limit,

                        Require Object Literal Shorthand Syntax (object-shorthand)

                        EcmaScript 6 provides a concise form for defining object literal methods and properties. This syntax can make defining complex object literals much cleaner.

                        Here are a few common examples using the ES5 syntax:

                        // properties
                        var foo = {
                            x: x,
                            y: y,
                            z: z,
                        };
                        
                        // methods
                        var foo = {
                            a: function() {},
                            b: function() {}
                        };

                        Now here are ES6 equivalents:

                        /*eslint-env es6*/
                        
                        // properties
                        var foo = {x, y, z};
                        
                        // methods
                        var foo = {
                            a() {},
                            b() {}
                        };

                        Rule Details

                        This rule enforces the use of the shorthand syntax. This applies to all methods (including generators) defined in object literals and any properties defined where the key name matches name of the assigned variable.

                        Each of the following properties would warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w: function() {},
                            x: function *() {},
                            [y]: function() {},
                            z: z
                        };

                        In that case the expected syntax would have been:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            w() {},
                            *x() {},
                            [y]() {},
                            z
                        };

                        This rule does not flag arrow functions inside of object literals. The following will not warn:

                        /*eslint object-shorthand: "error"*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            x: (y) => y
                        };

                        Options

                        The rule takes an option which specifies when it should be applied. It can be set to one of the following values:

                        • "always" (default) expects that the shorthand will be used whenever possible.
                        • "methods" ensures the method shorthand is used (also applies to generators).
                        • "properties" ensures the property shorthand is used (where the key and variable name match).
                        • "never" ensures that no property or method shorthand is used in any object literal.
                        • "consistent" ensures that either all shorthand or all longform will be used in an object literal.
                        • "consistent-as-needed" ensures that either all shorthand or all longform will be used in an object literal, but ensures all shorthand whenever possible.

                        You can set the option in configuration like this:

                        {
                            "object-shorthand": ["error", "always"]
                        }

                        Additionally, the rule takes an optional object configuration:

                        • "avoidQuotes": true indicates that longform syntax is preferred whenever the object key is a string literal (default: false). Note that this option can only be enabled when the string option is set to "always", "methods", or "properties".
                        • "ignoreConstructors": true can be used to prevent the rule from reporting errors for constructor functions. (By default, the rule treats constructors the same way as other functions.) Note that this option can only be enabled when the string option is set to "always" or "methods".
                        • "avoidExplicitReturnArrows": true indicates that methods are preferred over explicit-return arrow functions for function properties. (By default, the rule allows either of these.) Note that this option can only be enabled when the string option is set to "always" or "methods".

                        avoidQuotes

                        {
                            "object-shorthand": ["error", "always", { "avoidQuotes": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz"() {}
                        };

                        Example of correct code for this rule with the "always", { "avoidQuotes": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidQuotes": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            "bar-baz": function() {},
                            "qux": qux
                        };

                        ignoreConstructors

                        {
                            "object-shorthand": ["error", "always", { "ignoreConstructors": true }]
                        }

                        Example of correct code for this rule with the "always", { "ignoreConstructors": true } option:

                        /*eslint object-shorthand: ["error", "always", { "ignoreConstructors": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            ConstructorFunction: function() {}
                        };

                        avoidExplicitReturnArrows

                        {
                            "object-shorthand": ["error", "always", { "avoidExplicitReturnArrows": true }]
                        }

                        Example of incorrect code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo: (bar, baz) => {
                            return bar + baz;
                          },
                        
                          qux: (foobar) => {
                            return foobar * 2;
                          }
                        };

                        Example of correct code for this rule with the "always", { "avoidExplicitReturnArrows": true } option:

                        /*eslint object-shorthand: ["error", "always", { "avoidExplicitReturnArrows": true }]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                          foo(bar, baz) {
                            return bar + baz;
                          },
                        
                          qux: foobar => foobar * 2
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a,
                            b: "foo",
                        };

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

                        /*eslint object-shorthand: [2, "consistent"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: "foo"
                        };
                        
                        var bar = {
                            a,
                            b,
                        };

                        Example of incorrect code with the "consistent-as-needed" option, which is very similar to "consistent":

                        /*eslint object-shorthand: [2, "consistent-as-needed"]*/
                        /*eslint-env es6*/
                        
                        var foo = {
                            a: a,
                            b: b,
                        };

                        When Not To Use It

                        Anyone not yet in an ES6 environment would not want to apply this rule. Others may find the terseness of the shorthand syntax harder to read and may not want to encourage it with this rule.

                        Further Reading

                        Object initializer - MDN Source: http://eslint.org/docs/rules/

                        iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.
                        Open

                              for (const i of range(start, start + _diff + 1)) {

                        disallow specified syntax (no-restricted-syntax)

                        JavaScript has a lot of language features, and not everyone likes all of them. As a result, some projects choose to disallow the use of certain language features altogether. For instance, you might decide to disallow the use of try-catch or class, or you might decide to disallow the use of the in operator.

                        Rather than creating separate rules for every language feature you want to turn off, this rule allows you to configure the syntax elements you want to restrict use of. These elements are represented by their ESTree node types. For example, a function declaration is represented by FunctionDeclaration and the with statement is represented by WithStatement. You may find the full list of AST node names you can use on GitHub and use the online parser to see what type of nodes your code consists of.

                        You can also specify [AST selectors](../developer-guide/selectors) to restrict, allowing much more precise control over syntax patterns.

                        Rule Details

                        This rule disallows specified (that is, user-defined) syntax.

                        Options

                        This rule takes a list of strings, where each string is an AST selector:

                        {
                            "rules": {
                                "no-restricted-syntax": ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"]
                            }
                        }

                        Alternatively, the rule also accepts objects, where the selector and an optional custom message are specified:

                        {
                            "rules": {
                                "no-restricted-syntax": [
                                    "error",
                                    {
                                        "selector": "FunctionExpression",
                                        "message": "Function expressions are not allowed."
                                    },
                                    {
                                        "selector": "CallExpression[callee.name='setTimeout'][arguments.length!=2]",
                                        "message": "setTimeout must always be invoked with two arguments."
                                    }
                                ]
                            }
                        }

                        If a custom message is specified with the message property, ESLint will use that message when reporting occurrences of the syntax specified in the selector property.

                        The string and object formats can be freely mixed in the configuration as needed.

                        Examples of incorrect code for this rule with the "FunctionExpression", "WithStatement", BinaryExpression[operator='in'] options:

                        /* eslint no-restricted-syntax: ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"] */
                        
                        with (me) {
                            dontMess();
                        }
                        
                        var doSomething = function () {};
                        
                        foo in bar;

                        Examples of correct code for this rule with the "FunctionExpression", "WithStatement", BinaryExpression[operator='in'] options:

                        /* eslint no-restricted-syntax: ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"] */
                        
                        me.dontMess();
                        
                        function doSomething() {};
                        
                        foo instanceof bar;

                        When Not To Use It

                        If you don't want to restrict your code from using any JavaScript features or syntax, you should not use this rule.

                        Related Rules

                        • [no-alert](no-alert.md)
                        • [no-console](no-console.md)
                        • [no-debugger](no-debugger.md)
                        • [no-restricted-properties](no-restricted-properties.md) Source: http://eslint.org/docs/rules/

                        Unexpected if as the only statement in an else block.
                        Open

                              if (typeof out[start] === 'undefined') {

                        disallow if statements as the only statement in else blocks (no-lonely-if)

                        If an if statement is the only statement in the else block, it is often clearer to use an else if form.

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

                        should be rewritten as

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

                        Rule Details

                        This rule disallows if statements as the only statement in else blocks.

                        Examples of incorrect code for this rule:

                        /*eslint no-lonely-if: "error"*/
                        
                        if (condition) {
                            // ...
                        } else {
                            if (anotherCondition) {
                                // ...
                            }
                        }
                        
                        if (condition) {
                            // ...
                        } else {
                            if (anotherCondition) {
                                // ...
                            } else {
                                // ...
                            }
                        }

                        Examples of correct code for this rule:

                        /*eslint no-lonely-if: "error"*/
                        
                        if (condition) {
                            // ...
                        } else if (anotherCondition) {
                            // ...
                        }
                        
                        if (condition) {
                            // ...
                        } else if (anotherCondition) {
                            // ...
                        } else {
                            // ...
                        }
                        
                        if (condition) {
                            // ...
                        } else {
                            if (anotherCondition) {
                                // ...
                            }
                            doSomething();
                        }

                        When Not To Use It

                        Disable this rule if the code is clearer without requiring the else if form. Source: http://eslint.org/docs/rules/

                        iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.
                        Open

                              for (const i of range(start, start + _diff + 1)) {

                        disallow specified syntax (no-restricted-syntax)

                        JavaScript has a lot of language features, and not everyone likes all of them. As a result, some projects choose to disallow the use of certain language features altogether. For instance, you might decide to disallow the use of try-catch or class, or you might decide to disallow the use of the in operator.

                        Rather than creating separate rules for every language feature you want to turn off, this rule allows you to configure the syntax elements you want to restrict use of. These elements are represented by their ESTree node types. For example, a function declaration is represented by FunctionDeclaration and the with statement is represented by WithStatement. You may find the full list of AST node names you can use on GitHub and use the online parser to see what type of nodes your code consists of.

                        You can also specify [AST selectors](../developer-guide/selectors) to restrict, allowing much more precise control over syntax patterns.

                        Rule Details

                        This rule disallows specified (that is, user-defined) syntax.

                        Options

                        This rule takes a list of strings, where each string is an AST selector:

                        {
                            "rules": {
                                "no-restricted-syntax": ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"]
                            }
                        }

                        Alternatively, the rule also accepts objects, where the selector and an optional custom message are specified:

                        {
                            "rules": {
                                "no-restricted-syntax": [
                                    "error",
                                    {
                                        "selector": "FunctionExpression",
                                        "message": "Function expressions are not allowed."
                                    },
                                    {
                                        "selector": "CallExpression[callee.name='setTimeout'][arguments.length!=2]",
                                        "message": "setTimeout must always be invoked with two arguments."
                                    }
                                ]
                            }
                        }

                        If a custom message is specified with the message property, ESLint will use that message when reporting occurrences of the syntax specified in the selector property.

                        The string and object formats can be freely mixed in the configuration as needed.

                        Examples of incorrect code for this rule with the "FunctionExpression", "WithStatement", BinaryExpression[operator='in'] options:

                        /* eslint no-restricted-syntax: ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"] */
                        
                        with (me) {
                            dontMess();
                        }
                        
                        var doSomething = function () {};
                        
                        foo in bar;

                        Examples of correct code for this rule with the "FunctionExpression", "WithStatement", BinaryExpression[operator='in'] options:

                        /* eslint no-restricted-syntax: ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"] */
                        
                        me.dontMess();
                        
                        function doSomething() {};
                        
                        foo instanceof bar;

                        When Not To Use It

                        If you don't want to restrict your code from using any JavaScript features or syntax, you should not use this rule.

                        Related Rules

                        • [no-alert](no-alert.md)
                        • [no-console](no-console.md)
                        • [no-debugger](no-debugger.md)
                        • [no-restricted-properties](no-restricted-properties.md) Source: http://eslint.org/docs/rules/

                        iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.
                        Open

                              for (const i of range(start, start + _diff + 1)) {

                        disallow specified syntax (no-restricted-syntax)

                        JavaScript has a lot of language features, and not everyone likes all of them. As a result, some projects choose to disallow the use of certain language features altogether. For instance, you might decide to disallow the use of try-catch or class, or you might decide to disallow the use of the in operator.

                        Rather than creating separate rules for every language feature you want to turn off, this rule allows you to configure the syntax elements you want to restrict use of. These elements are represented by their ESTree node types. For example, a function declaration is represented by FunctionDeclaration and the with statement is represented by WithStatement. You may find the full list of AST node names you can use on GitHub and use the online parser to see what type of nodes your code consists of.

                        You can also specify [AST selectors](../developer-guide/selectors) to restrict, allowing much more precise control over syntax patterns.

                        Rule Details

                        This rule disallows specified (that is, user-defined) syntax.

                        Options

                        This rule takes a list of strings, where each string is an AST selector:

                        {
                            "rules": {
                                "no-restricted-syntax": ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"]
                            }
                        }

                        Alternatively, the rule also accepts objects, where the selector and an optional custom message are specified:

                        {
                            "rules": {
                                "no-restricted-syntax": [
                                    "error",
                                    {
                                        "selector": "FunctionExpression",
                                        "message": "Function expressions are not allowed."
                                    },
                                    {
                                        "selector": "CallExpression[callee.name='setTimeout'][arguments.length!=2]",
                                        "message": "setTimeout must always be invoked with two arguments."
                                    }
                                ]
                            }
                        }

                        If a custom message is specified with the message property, ESLint will use that message when reporting occurrences of the syntax specified in the selector property.

                        The string and object formats can be freely mixed in the configuration as needed.

                        Examples of incorrect code for this rule with the "FunctionExpression", "WithStatement", BinaryExpression[operator='in'] options:

                        /* eslint no-restricted-syntax: ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"] */
                        
                        with (me) {
                            dontMess();
                        }
                        
                        var doSomething = function () {};
                        
                        foo in bar;

                        Examples of correct code for this rule with the "FunctionExpression", "WithStatement", BinaryExpression[operator='in'] options:

                        /* eslint no-restricted-syntax: ["error", "FunctionExpression", "WithStatement", "BinaryExpression[operator='in']"] */
                        
                        me.dontMess();
                        
                        function doSomething() {};
                        
                        foo instanceof bar;

                        When Not To Use It

                        If you don't want to restrict your code from using any JavaScript features or syntax, you should not use this rule.

                        Related Rules

                        • [no-alert](no-alert.md)
                        • [no-console](no-console.md)
                        • [no-debugger](no-debugger.md)
                        • [no-restricted-properties](no-restricted-properties.md) Source: http://eslint.org/docs/rules/

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

                              $or: [
                                {
                                  start_date: {
                                    $between: [
                                      new Date(moment(_start).startOf('day')),
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 6 hrs to fix
                        src/server/db/dao/posts/postsProvider.js on lines 281..308

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 158.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                              $or: [
                                {
                                  start_date: {
                                    $between: [
                                      new Date(moment(_start).startOf('day')),
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 6 hrs to fix
                        src/server/db/dao/posts/postsProvider.js on lines 220..247

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 158.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_year) {
                            totalDays = moment().endOf('month').date()
                            _year = moment().year()
                            _month = moment().month() + 1
                          } else {
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 4 hrs to fix
                        src/server/db/dao/statistics/statisticsProvider.js on lines 13..23

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 122.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                            where: {
                              status: 0,
                              start_date: {
                                $between: [
                                  new Date(moment({
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 3 other locations - About 3 hrs to fix
                        src/server/db/dao/statistics/statisticsProvider.js on lines 26..42
                        src/server/db/dao/statistics/statisticsProvider.js on lines 56..72
                        src/server/db/dao/statistics/statisticsProvider.js on lines 83..99

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 97.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                            if (_diff >= 0) {
                              for (const i of range(start, start + _diff + 1)) {
                                if (typeof out[i] === 'undefined') {
                                  out[i] = 1
                                } else {
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 2 hrs to fix
                        src/server/db/dao/posts/postsProvider.js on lines 496..504

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 88.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                            if (_diff >= 0) {
                              for (const i of range(start, start + _diff + 1)) {
                                if (typeof out[i] === 'undefined') {
                                  out[i] = 1
                                } else {
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 2 hrs to fix
                        src/server/db/dao/posts/postsProvider.js on lines 521..529

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 88.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                        exports.listWithType = function *(type, offset=0, limit=20) {
                          if (!type) return []
                          if (!isFinite(+type)) return []
                        
                          return yield Post.findAll({
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 2 hrs to fix
                        src/server/db/dao/posts/postsProvider.js on lines 162..176

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 87.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                        exports.listWithUser = function *(offset=0, limit=20, uid) {
                          if (!uid) return []
                          if (!isFinite(+uid)) return []
                        
                          return yield Post.findAll({
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 1 other location - About 2 hrs to fix
                        src/server/db/dao/posts/postsProvider.js on lines 146..160

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 87.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_end) {
                            _end = moment(+_start).endOf('day').valueOf()
                          } else {
                            _end = +_end
                          }
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 2 other locations - About 45 mins to fix
                        src/server/db/dao/posts/postsProvider.js on lines 265..269
                        src/server/db/dao/posts/postsProvider.js on lines 329..333

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 50.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_end) {
                            _end = moment(+_start).endOf('day').valueOf()
                          } else {
                            _end = +_end
                          }
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 2 other locations - About 45 mins to fix
                        src/server/db/dao/posts/postsProvider.js on lines 205..209
                        src/server/db/dao/posts/postsProvider.js on lines 265..269

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 50.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_end) {
                            _end = moment(+_start).endOf('day').valueOf()
                          } else {
                            _end = +_end
                          }
                        Severity: Major
                        Found in src/server/db/dao/posts/postsProvider.js and 2 other locations - About 45 mins to fix
                        src/server/db/dao/posts/postsProvider.js on lines 205..209
                        src/server/db/dao/posts/postsProvider.js on lines 329..333

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 50.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_start) {
                            _start = moment().startOf('day').valueOf()
                          } else {
                            _start = +_start
                          }
                        Severity: Minor
                        Found in src/server/db/dao/posts/postsProvider.js and 2 other locations - About 35 mins to fix
                        src/server/db/dao/posts/postsProvider.js on lines 200..204
                        src/server/db/dao/posts/postsProvider.js on lines 324..328

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 47.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_start) {
                            _start = moment().startOf('day').valueOf()
                          } else {
                            _start = +_start
                          }
                        Severity: Minor
                        Found in src/server/db/dao/posts/postsProvider.js and 2 other locations - About 35 mins to fix
                        src/server/db/dao/posts/postsProvider.js on lines 200..204
                        src/server/db/dao/posts/postsProvider.js on lines 260..264

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 47.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

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

                          if (!_start) {
                            _start = moment().startOf('day').valueOf()
                          } else {
                            _start = +_start
                          }
                        Severity: Minor
                        Found in src/server/db/dao/posts/postsProvider.js and 2 other locations - About 35 mins to fix
                        src/server/db/dao/posts/postsProvider.js on lines 260..264
                        src/server/db/dao/posts/postsProvider.js on lines 324..328

                        Duplicated Code

                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                        Tuning

                        This issue has a mass of 47.

                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                        Refactorings

                        Further Reading

                        There are no issues that match your filters.

                        Category
                        Status