| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | /** * @fileoverview Rule to flag use of an empty block statement * @author Nicholas C. Zakas */"use strict";//------------------------------------------------------------------------------// Requirements//------------------------------------------------------------------------------const astUtils = require("../ast-utils");//------------------------------------------------------------------------------// Rule Definition//------------------------------------------------------------------------------module.exports = {    meta: {        docs: {            description: "disallow empty block statements",            category: "Possible Errors",            recommended: true,            url: "https://eslint.org/docs/rules/no-empty"        },        schema: [            {                type: "object",                properties: {                    allowEmptyCatch: {                        type: "boolean"                    }                },                additionalProperties: false            }        ],        messages: {            unexpected: "Empty {{type}} statement."        }    },    create(context) {        const options = context.options[0] || {},            allowEmptyCatch = options.allowEmptyCatch || false;        const sourceCode = context.getSourceCode();        return {            BlockStatement(node) {                // if the body is not empty, we can just return immediately                if (node.body.length !== 0) {                    return;                }                // a function is generally allowed to be empty                if (astUtils.isFunction(node.parent)) {                    return;                }                if (allowEmptyCatch && node.parent.type === "CatchClause") {                    return;                }                // any other block is only allowed to be empty, if it contains a comment                if (sourceCode.getCommentsInside(node).length > 0) {                    return;                }                context.report({ node, messageId: "unexpected", data: { type: "block" } });            },            SwitchStatement(node) {                if (typeof node.cases === "undefined" || node.cases.length === 0) {                    context.report({ node, messageId: "unexpected", data: { type: "switch" } });                }            }        };    }};
 |