Skip to content
Permalink
Browse files
Chore: Replace old syntax for Array flat/flatMap (#14614)
  • Loading branch information
stephenwade committed Aug 14, 2021
1 parent 6a89f3f commit 0c86b68a6e2435eb03b681b51b099b552b521adc
Showing with 5 additions and 37 deletions.
  1. +2 −17 lib/linter/apply-disable-directives.js
  2. +1 −2 lib/linter/linter.js
  3. +1 −3 lib/linter/node-event-generator.js
  4. +1 −15 lib/rules/max-lines.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":
@@ -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"));
@@ -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())];
}

/**
@@ -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)

0 comments on commit 0c86b68

Please sign in to comment.