Server IP : 150.95.80.236 / Your IP : 13.59.26.221 Web Server : Apache System : Linux host-150-95-80-236 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : social-telecare ( 10000) PHP Version : 7.4.33 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/pcu.in.th/api-uat.pcu.in.th/node_modules/eslint/lib/rules/ |
Upload File : |
/** * @fileoverview Rule to enforce a particular function style * @author Nicholas C. Zakas */ "use strict"; //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ /** @type {import('../shared/types').Rule} */ module.exports = { meta: { type: "suggestion", docs: { description: "Enforce the consistent use of either `function` declarations or expressions", recommended: false, url: "https://eslint.org/docs/latest/rules/func-style" }, schema: [ { enum: ["declaration", "expression"] }, { type: "object", properties: { allowArrowFunctions: { type: "boolean", default: false } }, additionalProperties: false } ], messages: { expression: "Expected a function expression.", declaration: "Expected a function declaration." } }, create(context) { const style = context.options[0], allowArrowFunctions = context.options[1] && context.options[1].allowArrowFunctions, enforceDeclarations = (style === "declaration"), stack = []; const nodesToCheck = { FunctionDeclaration(node) { stack.push(false); if (!enforceDeclarations && node.parent.type !== "ExportDefaultDeclaration") { context.report({ node, messageId: "expression" }); } }, "FunctionDeclaration:exit"() { stack.pop(); }, FunctionExpression(node) { stack.push(false); if (enforceDeclarations && node.parent.type === "VariableDeclarator") { context.report({ node: node.parent, messageId: "declaration" }); } }, "FunctionExpression:exit"() { stack.pop(); }, ThisExpression() { if (stack.length > 0) { stack[stack.length - 1] = true; } } }; if (!allowArrowFunctions) { nodesToCheck.ArrowFunctionExpression = function() { stack.push(false); }; nodesToCheck["ArrowFunctionExpression:exit"] = function(node) { const hasThisExpr = stack.pop(); if (enforceDeclarations && !hasThisExpr && node.parent.type === "VariableDeclarator") { context.report({ node: node.parent, messageId: "declaration" }); } }; } return nodesToCheck; } };