Sha256: 4eac409697fd3b3e861e46ea3c0b8e7e39b194a5367bc8b430147b14a2879fed
Contents?: true
Size: 1.55 KB
Versions: 6
Compression:
Stored size: 1.55 KB
Contents
/** * @fileoverview enforce default parameters to be last * @author Chiawen Chen */ "use strict"; /** @type {import('../shared/types').Rule} */ module.exports = { meta: { type: "suggestion", docs: { description: "enforce default parameters to be last", recommended: false, url: "https://eslint.org/docs/rules/default-param-last" }, schema: [], messages: { shouldBeLast: "Default parameters should be last." } }, create(context) { /** * Handler for function contexts. * @param {ASTNode} node function node * @returns {void} */ function handleFunction(node) { let hasSeenPlainParam = false; for (let i = node.params.length - 1; i >= 0; i -= 1) { const param = node.params[i]; if ( param.type !== "AssignmentPattern" && param.type !== "RestElement" ) { hasSeenPlainParam = true; continue; } if (hasSeenPlainParam && param.type === "AssignmentPattern") { context.report({ node: param, messageId: "shouldBeLast" }); } } } return { FunctionDeclaration: handleFunction, FunctionExpression: handleFunction, ArrowFunctionExpression: handleFunction }; } };
Version data entries
6 entries across 6 versions & 1 rubygems