Skip to content

Commit

Permalink
Chore: Replace old syntax for Array flat/flatMap
Browse files Browse the repository at this point in the history
  • Loading branch information
stephenwade committed May 22, 2021
1 parent 85a2725 commit ceffff3
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 35 deletions.
16 changes: 1 addition & 15 deletions lib/linter/apply-disable-directives.js
Expand Up @@ -122,21 +122,7 @@ module.exports = ({ directives, problems, reportUnusedDisableDirectives = "off"
.map(directive => Object.assign({}, directive, { unprocessedDirective: directive }))
.sort(compareLocations);

/**
* 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;
}

const lineDirectives = flatMap(directives, directive => {
const lineDirectives = directives.flatMap(directive => {
switch (directive.type) {
case "disable":
case "enable":
Expand Down
3 changes: 1 addition & 2 deletions lib/linter/linter.js
Expand Up @@ -1287,8 +1287,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 || Array.prototype.flat.call;
const filterCodeBlock =
options.filterCodeBlock ||
(blockFilename => blockFilename.endsWith(".js"));
Expand Down
4 changes: 1 addition & 3 deletions lib/linter/node-event-generator.js
Expand Up @@ -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())];
}

/**
Expand Down
16 changes: 1 addition & 15 deletions lib/rules/max-lines.js
Expand Up @@ -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) => ({
Expand All @@ -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)
Expand Down

0 comments on commit ceffff3

Please sign in to comment.