Skip to content

Commit 7ffbf03

Browse files
rfermannljharb
authored andcommittedAug 8, 2019
[fix] no-unused-modules: prevent memory overflow
Fixes import-js#1364.
1 parent f235aab commit 7ffbf03

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed
 

‎src/rules/no-unused-modules.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ let preparationDone = false
4747
const importList = new Map()
4848
const exportList = new Map()
4949
const ignoredFiles = new Set()
50+
const filesOutsideSrc = new Set()
5051

5152
const isNodeModule = path => {
5253
return /\/(node_modules)\//.test(path)
@@ -192,8 +193,9 @@ const getSrc = src => {
192193
* prepare the lists of existing imports and exports - should only be executed once at
193194
* the start of a new eslint run
194195
*/
196+
let srcFiles
195197
const doPreparation = (src, ignoreExports, context) => {
196-
const srcFiles = resolveFiles(getSrc(src), ignoreExports)
198+
srcFiles = resolveFiles(getSrc(src), ignoreExports)
197199
prepareImportsAndExports(srcFiles, context)
198200
determineUsage()
199201
preparationDone = true
@@ -375,12 +377,17 @@ module.exports = {
375377
return
376378
}
377379

378-
// refresh list of source files
379-
const srcFiles = resolveFiles(getSrc(src), ignoreExports)
380+
if (filesOutsideSrc.has(file)) {
381+
return
382+
}
380383

381384
// make sure file to be linted is included in source files
382385
if (!srcFiles.has(file)) {
383-
return
386+
srcFiles = resolveFiles(getSrc(src), ignoreExports)
387+
if (!srcFiles.has(file)) {
388+
filesOutsideSrc.add(file)
389+
return
390+
}
384391
}
385392

386393
exports = exportList.get(file)

0 commit comments

Comments
 (0)
Please sign in to comment.