UNPKG

@masknet/eslint-plugin

Version:
38 lines 1.35 kB
import { isIdentifierFunction, isIdentifierName } from '../../node.js'; import { createRule } from '../../rule.js'; export default createRule({ name: 'array/no-unneeded-flat-map', meta: { type: 'suggestion', fixable: 'code', docs: { description: 'Disallow `Array#flatMap((x) => x)` when simpler alternatives exist', recommended: 'stylistic', }, schema: [], messages: { invalid: 'Disallow simple `Array#flatMap()` in array', }, }, create(context) { return { CallExpression(node) { if (node.callee.type !== 'MemberExpression') return; const isFlatMap = isIdentifierName(node.callee.property, 'flatMap'); if (!isFlatMap || !isIdentifierFunction(node.arguments[0])) return; const { property } = node.callee; context.report({ node, messageId: 'invalid', *fix(fixer) { yield fixer.replaceText(property, 'flat'); yield* node.arguments.map((node) => fixer.remove(node)); }, }); }, }; }, }); //# sourceMappingURL=no-unneeded-flat-map.js.map