From 0c86b68a6e2435eb03b681b51b099b552b521adc Mon Sep 17 00:00:00 2001 From: Stephen Wade Date: Sat, 14 Aug 2021 19:16:11 -0400 Subject: [PATCH] Chore: Replace old syntax for Array flat/flatMap (#14614) --- lib/linter/apply-disable-directives.js | 19 ++----------------- lib/linter/linter.js | 3 +-- lib/linter/node-event-generator.js | 4 +--- lib/rules/max-lines.js | 16 +--------------- 4 files changed, 5 insertions(+), 37 deletions(-) diff --git a/lib/linter/apply-disable-directives.js b/lib/linter/apply-disable-directives.js index de81c24447f..20085ed4fe9 100644 --- a/lib/linter/apply-disable-directives.js +++ b/lib/linter/apply-disable-directives.js @@ -96,20 +96,6 @@ function createCommentRemoval(directives, commentToken) { }; } -/** - * Returns a new array formed by applying a given callback function to each element of the array, and then flattening the result by one level. - * TODO(stephenwade): Replace this with array.flatMap when we drop support for Node v10 - * @param {any[]} array The array to process - * @param {Function} fn The function to use - * @returns {any[]} The result array - */ -function flatMap(array, fn) { - const mapped = array.map(fn); - const flattened = [].concat(...mapped); - - return flattened; -} - /** * Parses details from directives to create output Problems. * @param {Directive[]} allDirectives Unused directives to be removed. @@ -118,8 +104,7 @@ function flatMap(array, fn) { function processUnusedDisableDirectives(allDirectives) { const directiveGroups = groupByParentComment(allDirectives); - return flatMap( - directiveGroups, + return directiveGroups.flatMap( directives => { const { parentComment } = directives[0].unprocessedDirective; const remainingRuleIds = new Set(parentComment.ruleIds); @@ -247,7 +232,7 @@ module.exports = ({ directives, disableFixes, problems, reportUnusedDisableDirec .map(directive => Object.assign({}, directive, { unprocessedDirective: directive })) .sort(compareLocations); - const lineDirectives = flatMap(directives, directive => { + const lineDirectives = directives.flatMap(directive => { switch (directive.type) { case "disable": case "enable": diff --git a/lib/linter/linter.js b/lib/linter/linter.js index ae564b6610b..a140b4b1bef 100644 --- a/lib/linter/linter.js +++ b/lib/linter/linter.js @@ -1310,8 +1310,7 @@ class Linter { const text = ensureText(textOrSourceCode); const preprocess = options.preprocess || (rawText => [rawText]); - // TODO(stephenwade): Replace this with array.flat() when we drop support for Node v10 - const postprocess = options.postprocess || (array => [].concat(...array)); + const postprocess = options.postprocess || (messagesList => messagesList.flat()); const filterCodeBlock = options.filterCodeBlock || (blockFilename => blockFilename.endsWith(".js")); diff --git a/lib/linter/node-event-generator.js b/lib/linter/node-event-generator.js index 8b619fdff83..9b058247b3e 100644 --- a/lib/linter/node-event-generator.js +++ b/lib/linter/node-event-generator.js @@ -37,9 +37,7 @@ const esquery = require("esquery"); * @returns {any[]} The union of the input arrays */ function union(...arrays) { - - // TODO(stephenwade): Replace this with arrays.flat() when we drop support for Node v10 - return [...new Set([].concat(...arrays))]; + return [...new Set(arrays.flat())]; } /** diff --git a/lib/rules/max-lines.js b/lib/rules/max-lines.js index 8bd5a1c95f4..0837dd1f0fd 100644 --- a/lib/rules/max-lines.js +++ b/lib/rules/max-lines.js @@ -137,20 +137,6 @@ module.exports = { return []; } - /** - * Returns a new array formed by applying a given callback function to each element of the array, and then flattening the result by one level. - * TODO(stephenwade): Replace this with array.flatMap when we drop support for Node v10 - * @param {any[]} array The array to process - * @param {Function} fn The function to use - * @returns {any[]} The result array - */ - function flatMap(array, fn) { - const mapped = array.map(fn); - const flattened = [].concat(...mapped); - - return flattened; - } - return { "Program:exit"() { let lines = sourceCode.lines.map((text, i) => ({ @@ -173,7 +159,7 @@ module.exports = { if (skipComments) { const comments = sourceCode.getAllComments(); - const commentLines = flatMap(comments, comment => getLinesWithoutCode(comment)); + const commentLines = comments.flatMap(getLinesWithoutCode); lines = lines.filter( l => !commentLines.includes(l.lineNumber)