Skip to content

Commit

Permalink
Merge pull request #33 from ersel/fix-parallel
Browse files Browse the repository at this point in the history
fix(parallel): fix sequence method
  • Loading branch information
ersel authored Oct 28, 2019
2 parents 90259bf + e6585b0 commit 7d37f29
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
21 changes: 11 additions & 10 deletions lib/scanner/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,17 @@ async function scanner({
);

const chunksOfFiles = ramda.splitEvery(fileScanParallelism, filesToAnalyse);
return sequence(chunksOfFiles, async files => {
const modules = await readModules(files);
return modules.map(({ sourceFile, fileContents }) => ({
sourceFile,
importedModules: [
...resolveES6Imports(fileContents, sourceFile),
...resolveCJSImports(fileContents, sourceFile)
]
}));
})
return sequence(chunksOfFiles, files =>
readModules(files).then(modules =>
modules.map(({ sourceFile, fileContents }) => ({
sourceFile,
importedModules: [
...resolveES6Imports(fileContents, sourceFile),
...resolveCJSImports(fileContents, sourceFile)
]
}))
)
)
.then(results => ramda.flatten(results))
.then(results =>
results.map(({ sourceFile, importedModules }) => ({
Expand Down
5 changes: 3 additions & 2 deletions lib/scanner/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ describe('Import Scanner ES6', () => {
extensions: testExtensions,
aliases: testAliases,
projectRootPath: testRootPath,
fileScanParallelism: 50
fileScanParallelism: 1
}).then(results => {
expect(results.length).toEqual(4);
expect(results).toEqual([
Expand Down Expand Up @@ -121,7 +121,8 @@ describe('Import Scanner CJS', () => {
includedPatterns: testIncludePatterns,
extensions: testExtensions,
aliases: testAliases,
projectRootPath: testRootPath
projectRootPath: testRootPath,
fileScanParallelism: 2
}).then(results => {
expect(results.length).toEqual(4);
expect(results).toEqual([
Expand Down
10 changes: 8 additions & 2 deletions utils/sequence/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
const sequence = (tasks, fn) =>
tasks.reduce(
(promise, task) => promise.then(() => fn(task)),
Promise.resolve()
(promiseChain, currentTask) =>
promiseChain.then(chainResults =>
fn(currentTask).then(currentResult => [
...chainResults,
currentResult
])
),
Promise.resolve([])
);

module.exports = sequence;

0 comments on commit 7d37f29

Please sign in to comment.