From 05d7b83ebaf9538325e8eb3a0ec841e2ccfe3f92 Mon Sep 17 00:00:00 2001 From: v Date: Thu, 29 Nov 2018 19:45:08 +0300 Subject: [PATCH] Promise.map --- zimmer.js | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/zimmer.js b/zimmer.js index a3445f7..e185560 100755 --- a/zimmer.js +++ b/zimmer.js @@ -1408,19 +1408,17 @@ async function initialise () { async function rawLoader () { const dirs = [ '' ] - function parseDirEntry ( path ) { + async function parseDirEntry ( path ) { if ( path == 'metadata.csv' || path == 'redirects.csv' ) - return Promise.resolve() + return - return fs.lstat( fullPath( path )) - .then( stats => { - if ( stats.isDirectory()) - return dirs.push( path ) - if ( stats.isFile() || stats.isSymbolicLink()) { - return new RawFile( path ).process() - } - return Promise.reject( new Error( 'Invalid dir entry ' + absPath )) - }) + const stats = await fs.lstat( fullPath( path )) + if ( stats.isDirectory()) + return dirs.push( path ) + if ( stats.isFile() || stats.isSymbolicLink()) { + return new RawFile( path ).process() + } + throw new Error( 'Invalid dir entry ' + absPath ) } log( 'rawLoader start' ) @@ -1428,11 +1426,10 @@ async function rawLoader () { for ( let path; ( path = dirs.shift()) != null; ) { log( 'scanDirectory', path ) - await Promise.map( - fs.readdir( fullPath( path )), - fname => parseDirEntry( osPath.join( path, fname )), - { concurrency: 8 } - ) + const dirlist = await fs.readdir( fullPath( path )) + for ( let fname of dirlist ) { + await parseDirEntry( osPath.join( path, fname )) + } } log( 'rawLoader finished !!!!!!!!!' )