@masknet/eslint-plugin
Version:
eslint plugin for masknet
39 lines • 1.37 kB
JavaScript
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',
},
},
defaultOptions: [],
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