lib/rules/no-empty-function.js
function getKind(node) {
    const parent = node.parent;
    let kind = "";

    if (node.type === "ArrowFunctionExpression") {
        return "arrowFunctions";
    }

    // Detects main kind.
    if (parent.type === "Property") {
        if (parent.kind === "get") {
            return "getters";
        }
        if (parent.kind === "set") {
            return "setters";
        }
        kind = parent.method ? "methods" : "functions";

    } else if (parent.type === "MethodDefinition") {
        if (parent.kind === "get") {
            return "getters";
        }
        if (parent.kind === "set") {
            return "setters";
        }
        if (parent.kind === "constructor") {
            return "constructors";
        }
        kind = "methods";

    } else {
        kind = "functions";
    }

    // Detects prefix.
    let prefix = "";

    if (node.generator) {
        prefix = "generator";
    } else if (node.async) {
        prefix = "async";
    } else {
        return kind;
    }
    return prefix + kind[0].toUpperCase() + kind.slice(1);
}
function getKind(node) {
    const parent = node.parent;
    let kind = "";

    if (node.type === "ArrowFunctionExpression") {
        return "arrowFunctions";
    }

    // Detects main kind.
    if (parent.type === "Property") {
        if (parent.kind === "get") {
            return "getters";
        }
        if (parent.kind === "set") {
            return "setters";
        }
        kind = parent.method ? "methods" : "functions";

    } else if (parent.type === "MethodDefinition") {
        if (parent.kind === "get") {
            return "getters";
        }
        if (parent.kind === "set") {
            return "setters";
        }
        if (parent.kind === "constructor") {
            return "constructors";
        }
        kind = "methods";

    } else {
        kind = "functions";
    }

    // Detects prefix.
    let prefix = "";

    if (node.generator) {
        prefix = "generator";
    } else if (node.async) {
        prefix = "async";
    } else {
        return kind;
    }
    return prefix + kind[0].toUpperCase() + kind.slice(1);
}
function getKind ( node ) { const parent = node . parent ; let kind = "" ; if ( node . type === "ArrowFunctionExpression" ) { return "arrowFunctions" ; } // Detects main kind. if ( parent . type === "Property" ) { if ( parent . kind === "get" ) { return "getters" ; } if ( parent . kind === "set" ) { return "setters" ; } kind = parent . method ? "methods" : "functions" ; } else if ( parent . type === "MethodDefinition" ) { if ( parent . kind === "get" ) { return "getters" ; } if ( parent . kind === "set" ) { return "setters" ; } if ( parent . kind === "constructor" ) { return "constructors" ; } kind = "methods" ; } else { kind = "functions" ; } // Detects prefix. let prefix = "" ; if ( node . generator ) { prefix = "generator" ; } else if ( node . async ) { prefix = "async" ; } else { return kind ; } return prefix + kind [ 0 ] . toUpperCase ( ) + kind . slice ( 1 ) ; }
Gets the kind of a given function node.

@param {ASTNode} node - A function node to get. This is one of
an ArrowFunctionExpression, a FunctionDeclaration, or a
FunctionExpression.
@returns {string} The kind of the function. This is one of "functions",
"arrowFunctions", "generatorFunctions", "asyncFunctions", "methods",
"generatorMethods", "asyncMethods", "getters", "setters", and
"constructors".
Gets the kind of a given function node .