rwwarren/door-lock

View on GitHub
web/src/root/js/jqueryDoorlock.js

Summary

Maintainability
A
1 hr
Test Coverage

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

    connectWith: "ul", items: "li:not(.currentUser)", update: function(event, ui) {
      if(ui.sender) {
        //TODO make sure username is correct and not tampored with
        console.log("selected");
        //TODO validate this.... not the best way to do this
Severity: Minor
Found in web/src/root/js/jqueryDoorlock.js - About 1 hr to fix

    The function binding is unnecessary.
    Open

              }.bind(this),
    Severity: Minor
    Found in web/src/root/js/jqueryDoorlock.js by eslint

    Disallow unnecessary function binding (no-extra-bind)

    The bind() method is used to create functions with specific this values and, optionally, binds arguments to specific values. When used to specify the value of this, it's important that the function actually use this in its function body. For example:

    var boundGetName = (function getName() {
        return this.name;
    }).bind({ name: "ESLint" });
    
    console.log(boundGetName());      // "ESLint"

    This code is an example of a good use of bind() for setting the value of this.

    Sometimes during the course of code maintenance, the this value is removed from the function body. In that case, you can end up with a call to bind() that doesn't accomplish anything:

    // useless bind
    var boundGetName = (function getName() {
        return "ESLint";
    }).bind({ name: "ESLint" });
    
    console.log(boundGetName());      // "ESLint"

    In this code, the reference to this has been removed but bind() is still used. In this case, the bind() is unnecessary overhead (and a performance hit) and can be safely removed.

    Rule Details

    This rule is aimed at avoiding the unnecessary use of bind() and as such will warn whenever an immediately-invoked function expression (IIFE) is using bind() and doesn't have an appropriate this value. This rule won't flag usage of bind() that includes function argument binding.

    Note: Arrow functions can never have their this value set using bind(). This rule flags all uses of bind() with arrow functions as a problem

    Examples of incorrect code for this rule:

    /*eslint no-extra-bind: "error"*/
    /*eslint-env es6*/
    
    var x = function () {
        foo();
    }.bind(bar);
    
    var x = (() => {
        foo();
    }).bind(bar);
    
    var x = (() => {
        this.foo();
    }).bind(bar);
    
    var x = function () {
        (function () {
          this.foo();
        }());
    }.bind(bar);
    
    var x = function () {
        function foo() {
          this.bar();
        }
    }.bind(baz);

    Examples of correct code for this rule:

    /*eslint no-extra-bind: "error"*/
    
    var x = function () {
        this.foo();
    }.bind(bar);
    
    var x = function (a) {
        return a + 1;
    }.bind(foo, bar);

    When Not To Use It

    If you are not concerned about unnecessary calls to bind(), you can safely disable this rule.

    Further Reading

    TODO found
    Open

            //TODO make sure username is correct and not tampored with
    Severity: Minor
    Found in web/src/root/js/jqueryDoorlock.js by fixme

    TODO found
    Open

              //TODO define this
    Severity: Minor
    Found in web/src/root/js/jqueryDoorlock.js by fixme

    TODO found
    Open

            //TODO validate this.... not the best way to do this
    Severity: Minor
    Found in web/src/root/js/jqueryDoorlock.js by fixme

    There are no issues that match your filters.

    Category
    Status