Promise.map

This commit is contained in:
v 2018-11-29 19:45:08 +03:00
parent 0021fe7ccd
commit 05d7b83eba

View File

@ -1408,19 +1408,17 @@ async function initialise () {
async function rawLoader () { async function rawLoader () {
const dirs = [ '' ] const dirs = [ '' ]
function parseDirEntry ( path ) { async function parseDirEntry ( path ) {
if ( path == 'metadata.csv' || path == 'redirects.csv' ) if ( path == 'metadata.csv' || path == 'redirects.csv' )
return Promise.resolve() return
return fs.lstat( fullPath( path )) const stats = await fs.lstat( fullPath( path ))
.then( stats => { if ( stats.isDirectory())
if ( stats.isDirectory()) return dirs.push( path )
return dirs.push( path ) if ( stats.isFile() || stats.isSymbolicLink()) {
if ( stats.isFile() || stats.isSymbolicLink()) { return new RawFile( path ).process()
return new RawFile( path ).process() }
} throw new Error( 'Invalid dir entry ' + absPath )
return Promise.reject( new Error( 'Invalid dir entry ' + absPath ))
})
} }
log( 'rawLoader start' ) log( 'rawLoader start' )
@ -1428,11 +1426,10 @@ async function rawLoader () {
for ( let path; ( path = dirs.shift()) != null; ) { for ( let path; ( path = dirs.shift()) != null; ) {
log( 'scanDirectory', path ) log( 'scanDirectory', path )
await Promise.map( const dirlist = await fs.readdir( fullPath( path ))
fs.readdir( fullPath( path )), for ( let fname of dirlist ) {
fname => parseDirEntry( osPath.join( path, fname )), await parseDirEntry( osPath.join( path, fname ))
{ concurrency: 8 } }
)
} }
log( 'rawLoader finished !!!!!!!!!' ) log( 'rawLoader finished !!!!!!!!!' )