Skip to content

Commit

Permalink
Merge 49ada27 into 4a9be63
Browse files Browse the repository at this point in the history
  • Loading branch information
coderaiser committed Aug 26, 2021
2 parents 4a9be63 + 49ada27 commit 45104e5
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 28 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Expand Up @@ -6,6 +6,9 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel

## [Unreleased]

### Added
- [`no-unused-modules`]: add eslint v8 support ([#2194], thanks [@coderaiser])

## [2.24.2] - 2021-08-24

### Fixed
Expand Down Expand Up @@ -901,6 +904,7 @@ for info on changes for earlier releases.
[`memo-parser`]: ./memo-parser/README.md

[#2196]: https://github.com/import-js/eslint-plugin-import/pull/2196
[#2194]: https://github.com/import-js/eslint-plugin-import/pull/2194
[#2184]: https://github.com/import-js/eslint-plugin-import/pull/2184
[#2179]: https://github.com/import-js/eslint-plugin-import/pull/2179
[#2160]: https://github.com/import-js/eslint-plugin-import/pull/2160
Expand Down
66 changes: 38 additions & 28 deletions src/rules/no-unused-modules.js
Expand Up @@ -13,45 +13,55 @@ import readPkgUp from 'read-pkg-up';
import values from 'object.values';
import includes from 'array-includes';

// eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3
// and has been moved to eslint/lib/cli-engine/file-enumerator in version 6
let FileEnumerator;
let listFilesToProcess;

try {
const FileEnumerator = require('eslint/lib/cli-engine/file-enumerator').FileEnumerator;
({ FileEnumerator } = require('eslint/use-at-your-own-risk'));
} catch (e) {
try {
// has been moved to eslint/lib/cli-engine/file-enumerator in version 6
({ FileEnumerator } = require('eslint/lib/cli-engine/file-enumerator'));
} catch (e) {
try {
// eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3
const { listFilesToProcess: originalListFilesToProcess } = require('eslint/lib/util/glob-utils');

// Prevent passing invalid options (extensions array) to old versions of the function.
// https://github.com/eslint/eslint/blob/v5.16.0/lib/util/glob-utils.js#L178-L280
// https://github.com/eslint/eslint/blob/v5.2.0/lib/util/glob-util.js#L174-L269
listFilesToProcess = function (src, extensions) {
return originalListFilesToProcess(src, {
extensions: extensions,
});
};
} catch (e) {
const { listFilesToProcess: originalListFilesToProcess } = require('eslint/lib/util/glob-util');

listFilesToProcess = function (src, extensions) {
const patterns = src.reduce((carry, pattern) => {
return carry.concat(extensions.map((extension) => {
return /\*\*|\*\./.test(pattern) ? pattern : `${pattern}/**/*${extension}`;
}));
}, src.slice());

return originalListFilesToProcess(patterns);
};
}
}
}

if (FileEnumerator) {
listFilesToProcess = function (src, extensions) {
const e = new FileEnumerator({
extensions: extensions,
});

return Array.from(e.iterateFiles(src), ({ filePath, ignored }) => ({
ignored,
filename: filePath,
}));
};
} catch (e1) {
// Prevent passing invalid options (extensions array) to old versions of the function.
// https://github.com/eslint/eslint/blob/v5.16.0/lib/util/glob-utils.js#L178-L280
// https://github.com/eslint/eslint/blob/v5.2.0/lib/util/glob-util.js#L174-L269
let originalListFilesToProcess;
try {
originalListFilesToProcess = require('eslint/lib/util/glob-utils').listFilesToProcess;
listFilesToProcess = function (src, extensions) {
return originalListFilesToProcess(src, {
extensions: extensions,
});
};
} catch (e2) {
originalListFilesToProcess = require('eslint/lib/util/glob-util').listFilesToProcess;

listFilesToProcess = function (src, extensions) {
const patterns = src.reduce((carry, pattern) => {
return carry.concat(extensions.map((extension) => {
return /\*\*|\*\./.test(pattern) ? pattern : `${pattern}/**/*${extension}`;
}));
}, src.slice());

return originalListFilesToProcess(patterns);
};
}
}

const EXPORT_DEFAULT_DECLARATION = 'ExportDefaultDeclaration';
Expand Down

0 comments on commit 45104e5

Please sign in to comment.