asdqwex/discobot

View on GitHub
src/index.js

Summary

Maintainability
C
1 day
Test Coverage

Function setupBot has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
Open

const setupBot = function () {
  bot.on('ready', function (data) {
    // First wins if none is defined
    if (!bot.DISCORD_GUILD) bot.DISCORD_GUILD = data.d.guilds[0].id
    // Allow usage of text name or id
Severity: Minor
Found in src/index.js - About 2 hrs 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 initialize has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
Open

const initialize = function () {
  glob('_build/modules/*.js', function (err, files) {
    // Bail out if the modules directory doesn't exist. Your install is fucked?
    if (err) throw new Error(err)
    for (let i = 0; i < files.length; i++) {
Severity: Minor
Found in src/index.js - About 1 hr 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 onMessage has 35 lines of code (exceeds 25 allowed). Consider refactoring.
Open

const onMessage = function (user, userID, channelID, message, rawEvent) {
  if (message.indexOf('!bots?') > -1 && message.indexOf('Force all bots to identify themselves') === -1) {
    return bot.sendMessage({
      to: channelID,
      message: 'Hello I am a robot and my name is ' + bot.BOT_NAME
Severity: Minor
Found in src/index.js - About 1 hr to fix

    Function setupBot has 30 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    const setupBot = function () {
      bot.on('ready', function (data) {
        // First wins if none is defined
        if (!bot.DISCORD_GUILD) bot.DISCORD_GUILD = data.d.guilds[0].id
        // Allow usage of text name or id
    Severity: Minor
    Found in src/index.js - About 1 hr to fix

      Function onMessage has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

      const onMessage = function (user, userID, channelID, message, rawEvent) {
        if (message.indexOf('!bots?') > -1 && message.indexOf('Force all bots to identify themselves') === -1) {
          return bot.sendMessage({
            to: channelID,
            message: 'Hello I am a robot and my name is ' + bot.BOT_NAME
      Severity: Minor
      Found in src/index.js - About 1 hr 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 onReady has 26 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      const onReady = function () {
      // Cron Jobby bit
        schedule.scheduleJob('announceGuard', '*/5 * * * *', function () {
          announceGuard = 0
        })
      Severity: Minor
      Found in src/index.js - About 1 hr to fix

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

        const onMessage = function (user, userID, channelID, message, rawEvent) {
        Severity: Minor
        Found in src/index.js - About 35 mins to fix

          Unnecessary escape character: \︵.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

            const trimmed = message.replace(hailing_frequency + ' ', '').trimLeft()
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

          let hailing_frequency = (process.env.HAILING || '!') + bot.BOT_NAME
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

          if (process.env.NO_HAILING) hailing_frequency = bot.BOT_NAME
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \°.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \).
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \╯.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

            if (message === hailing_frequency || message === hailing_frequency + '--help' || message === hailing_frequency + 'help' || message === hailing_frequency + 'commands') {
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

            if (message.substr(0, hailing_frequency.length) !== hailing_frequency) return undefined
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Identifier 'help_text' is not in camel case.
          Open

          let help_text = []
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \°.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

              message: 'Hello My Name is ' + hailing_frequency
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \□.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

            if (message === hailing_frequency || message === hailing_frequency + '--help' || message === hailing_frequency + 'help' || message === hailing_frequency + 'commands') {
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

              LOG.debug(`Connected as "${hailing_frequency}" to "${bot.my_guild.name}"`)
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \┻.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \╯.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \┻.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

            if (message === hailing_frequency || message === hailing_frequency + '--help' || message === hailing_frequency + 'help' || message === hailing_frequency + 'commands') {
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Identifier 'hailing_frequency' is not in camel case.
          Open

            if (message === hailing_frequency || message === hailing_frequency + '--help' || message === hailing_frequency + 'help' || message === hailing_frequency + 'commands') {
          Severity: Minor
          Found in src/index.js by eslint

          Require Camelcase (camelcase)

          When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

          Rule Details

          This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

          Options

          This rule has an object option:

          • "properties": "always" (default) enforces camelcase style for property names
          • "properties": "never" does not check property names

          always

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased } from "external-module"
          
          var my_favorite_color = "#112C85";
          
          function do_something() {
              // ...
          }
          
          obj.do_something = function() {
              // ...
          };
          
          var obj = {
              my_pref: 1
          };

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

          /*eslint camelcase: "error"*/
          
          import { no_camelcased as camelCased } from "external-module";
          
          var myFavoriteColor   = "#112C85";
          var _myFavoriteColor  = "#112C85";
          var myFavoriteColor_  = "#112C85";
          var MY_FAVORITE_COLOR = "#112C85";
          var foo = bar.baz_boom;
          var foo = { qux: bar.baz_boom };
          
          obj.do_something();
          do_something();
          new do_something();
          
          var { category_id: category } = query;

          never

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

          /*eslint camelcase: ["error", {properties: "never"}]*/
          
          var obj = {
              my_pref: 1
          };

          When Not To Use It

          If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

          Unnecessary escape character: \━.
          Open

              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
          Severity: Minor
          Found in src/index.js by eslint

          Disallow unnecessary escape usage (no-useless-escape)

          Escaping non-special characters in strings, template literals, and regular expressions doesn't have any effect, as demonstrated in the following example:

          let foo = "hol\a"; // > foo = "hola"
          let bar = `${foo}\!`; // > bar = "hola!"
          let baz = /\:/ // same functionality with /:/

          Rule Details

          This rule flags escapes that can be safely removed without changing behavior.

          Examples of incorrect code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\'";
          '\"';
          "\#";
          "\e";
          `\"`;
          `\"${foo}\"`;
          `\#{foo}`;
          /\!/;
          /\@/;

          Examples of correct code for this rule:

          /*eslint no-useless-escape: "error"*/
          
          "\"";
          '\'';
          "\x12";
          "\u00a9";
          "\371";
          "xs\u2111";
          `\``;
          `\${${foo}\}`;
          `$\{${foo}\}`;
          /\\/g;
          /\t/g;
          /\w\$\*\^\./;

          When Not To Use It

          If you don't want to be notified about unnecessary escapes, you can safely disable this rule. Source: http://eslint.org/docs/rules/

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

            if (message.indexOf('(╯°□°)╯︵ ┻━┻') > -1) {
              const count = (message.match(/\(\╯\°\□\°\)\╯\︵ \┻\━\┻/g) || []).length
              const tableArray = []
              for (let i = 0; i < count; i++) {
                tableArray.push('┬─┬ ノ( ゜-゜ノ)')
          Severity: Major
          Found in src/index.js and 1 other location - About 3 hrs to fix
          src/modules/table_flip.js on lines 9..19

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

          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

          Import in body of module; reorder to top.
          Open

          import { LOG } from './logger.js'
          Severity: Minor
          Found in src/index.js by eslint

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

          Import in body of module; reorder to top.
          Open

          import Random from 'random-js'
          Severity: Minor
          Found in src/index.js by eslint

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

          There are no issues that match your filters.

          Category
          Status