UNPKG

@masknet/eslint-plugin

Version:
37 lines (35 loc) 1.06 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)) }, }) }, } }, })