Skip to content

Commit

Permalink
xx
Browse files Browse the repository at this point in the history
  • Loading branch information
coderaiser committed Aug 17, 2021
1 parent 5eaf90f commit fdc2007
Showing 1 changed file with 37 additions and 33 deletions.
70 changes: 37 additions & 33 deletions src/rules/no-unused-modules.js
Expand Up @@ -12,39 +12,43 @@ import { dirname, join } from 'path';
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 listFilesToProcess;
try {
let { FileEnumerator } = require("eslint/use-at-your-own-risk");
} catch {}

try {
FileEnumerator = FileEnumerator || require('eslint/lib/cli-engine/file-enumerator').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;
import tryCatch from 'try-catch';

const [, eslint8] = tryCatch(require, 'eslint/use-at-your-own-risk');
const [, eslint7] = tryCatch(require, 'eslint/lib/cli-engine/file-enumerator');
const [, eslint6] = tryCatch(require, 'eslint/lib/util/glob-utils');
const [, eslint5] = tryCatch(require, 'eslint/lib/util/glob-util');

const modernESLint = eslint8 || eslint7;

if (modernESLint) {
// 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
const {FileEnumerator} = modernESLint;

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

return Array.from(e.iterateFiles(src), ({ filePath, ignored }) => ({
ignored,
filename: filePath,
}));
};
}

if (eslin6) {
originalListFilesToProcess = eslin6.listFilesToProcess;
listFilesToProcess = function (src, extensions) {
return originalListFilesToProcess(src, {
extensions: extensions,
});
};
}

if (eslin5) {
originalListFilesToProcess = eslint5.listFilesToProcess;

listFilesToProcess = function (src, extensions) {
const patterns = src.reduce((carry, pattern) => {
Expand Down

0 comments on commit fdc2007

Please sign in to comment.