Sha256: eb3c1ef872b75ebc3ba03b8d3bae2d6f62bcaa17f51b1d18ce8d8e0c6de901fb
Contents?: true
Size: 1.56 KB
Versions: 6
Compression:
Stored size: 1.56 KB
Contents
/** * @fileoverview Rule to disallow returning value from constructor. * @author Pig Fang <https://github.com/g-plane> */ "use strict"; //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ /** @type {import('../shared/types').Rule} */ module.exports = { meta: { type: "problem", docs: { description: "disallow returning value from constructor", recommended: false, url: "https://eslint.org/docs/rules/no-constructor-return" }, schema: {}, fixable: null, messages: { unexpected: "Unexpected return statement in constructor." } }, create(context) { const stack = []; return { onCodePathStart(_, node) { stack.push(node); }, onCodePathEnd() { stack.pop(); }, ReturnStatement(node) { const last = stack[stack.length - 1]; if (!last.parent) { return; } if ( last.parent.type === "MethodDefinition" && last.parent.kind === "constructor" && (node.parent.parent === last || node.argument) ) { context.report({ node, messageId: "unexpected" }); } } }; } };
Version data entries
6 entries across 6 versions & 1 rubygems