@@ -13,45 +13,55 @@ import readPkgUp from 'read-pkg-up';
13
13
import values from 'object.values' ;
14
14
import includes from 'array-includes' ;
15
15
16
- // eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3
17
- // and has been moved to eslint/lib/cli-engine/file-enumerator in version 6
16
+ let FileEnumerator ;
18
17
let listFilesToProcess ;
18
+
19
19
try {
20
- const FileEnumerator = require ( 'eslint/lib/cli-engine/file-enumerator' ) . FileEnumerator ;
20
+ ( { FileEnumerator } = require ( 'eslint/use-at-your-own-risk' ) ) ;
21
+ } catch ( e ) {
22
+ try {
23
+ // has been moved to eslint/lib/cli-engine/file-enumerator in version 6
24
+ ( { FileEnumerator } = require ( 'eslint/lib/cli-engine/file-enumerator' ) ) ;
25
+ } catch ( e ) {
26
+ try {
27
+ // eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3
28
+ const { listFilesToProcess : originalListFilesToProcess } = require ( 'eslint/lib/util/glob-utils' ) ;
29
+
30
+ // Prevent passing invalid options (extensions array) to old versions of the function.
31
+ // https://github.com/eslint/eslint/blob/v5.16.0/lib/util/glob-utils.js#L178-L280
32
+ // https://github.com/eslint/eslint/blob/v5.2.0/lib/util/glob-util.js#L174-L269
33
+ listFilesToProcess = function ( src , extensions ) {
34
+ return originalListFilesToProcess ( src , {
35
+ extensions : extensions ,
36
+ } ) ;
37
+ } ;
38
+ } catch ( e ) {
39
+ const { listFilesToProcess : originalListFilesToProcess } = require ( 'eslint/lib/util/glob-util' ) ;
40
+
41
+ listFilesToProcess = function ( src , extensions ) {
42
+ const patterns = src . reduce ( ( carry , pattern ) => {
43
+ return carry . concat ( extensions . map ( ( extension ) => {
44
+ return / \* \* | \* \. / . test ( pattern ) ? pattern : `${ pattern } /**/*${ extension } ` ;
45
+ } ) ) ;
46
+ } , src . slice ( ) ) ;
47
+
48
+ return originalListFilesToProcess ( patterns ) ;
49
+ } ;
50
+ }
51
+ }
52
+ }
53
+
54
+ if ( FileEnumerator ) {
21
55
listFilesToProcess = function ( src , extensions ) {
22
56
const e = new FileEnumerator ( {
23
57
extensions : extensions ,
24
58
} ) ;
59
+
25
60
return Array . from ( e . iterateFiles ( src ) , ( { filePath, ignored } ) => ( {
26
61
ignored,
27
62
filename : filePath ,
28
63
} ) ) ;
29
64
} ;
30
- } catch ( e1 ) {
31
- // Prevent passing invalid options (extensions array) to old versions of the function.
32
- // https://github.com/eslint/eslint/blob/v5.16.0/lib/util/glob-utils.js#L178-L280
33
- // https://github.com/eslint/eslint/blob/v5.2.0/lib/util/glob-util.js#L174-L269
34
- let originalListFilesToProcess ;
35
- try {
36
- originalListFilesToProcess = require ( 'eslint/lib/util/glob-utils' ) . listFilesToProcess ;
37
- listFilesToProcess = function ( src , extensions ) {
38
- return originalListFilesToProcess ( src , {
39
- extensions : extensions ,
40
- } ) ;
41
- } ;
42
- } catch ( e2 ) {
43
- originalListFilesToProcess = require ( 'eslint/lib/util/glob-util' ) . listFilesToProcess ;
44
-
45
- listFilesToProcess = function ( src , extensions ) {
46
- const patterns = src . reduce ( ( carry , pattern ) => {
47
- return carry . concat ( extensions . map ( ( extension ) => {
48
- return / \* \* | \* \. / . test ( pattern ) ? pattern : `${ pattern } /**/*${ extension } ` ;
49
- } ) ) ;
50
- } , src . slice ( ) ) ;
51
-
52
- return originalListFilesToProcess ( patterns ) ;
53
- } ;
54
- }
55
65
}
56
66
57
67
const EXPORT_DEFAULT_DECLARATION = 'ExportDefaultDeclaration' ;
0 commit comments