@@ -4,11 +4,11 @@ const d3 = require('d3-queue');
44const fs = require ( 'fs' ) ;
55const util = require ( 'util' ) ;
66const path = require ( 'path' ) ;
7- const mkdirp = require ( 'mkdirp' ) ;
87const hash = require ( '../lib/hash' ) ;
9- const rimraf = require ( 'rimraf' ) ;
8+ const { rm } = require ( 'fs/promises' ) ;
9+ const { createDir } = require ( '../lib/utils' ) ;
1010
11- module . exports = function ( ) {
11+ module . exports = function ( ) {
1212 this . initializeCache = ( callback ) => {
1313 this . getOSRMHash ( ( err , osrmHash ) => {
1414 if ( err ) return callback ( err ) ;
@@ -45,7 +45,7 @@ module.exports = function() {
4545 this . featureProcessedCacheDirectories [ uri ] = featureProcessedCacheDirectory ;
4646
4747 d3 . queue ( 1 )
48- . defer ( mkdirp , featureProcessedCacheDirectory )
48+ . defer ( createDir , featureProcessedCacheDirectory )
4949 . defer ( this . cleanupFeatureCache . bind ( this ) , featureCacheDirectory , hash )
5050 . defer ( this . cleanupProcessedFeatureCache . bind ( this ) , featureProcessedCacheDirectory , this . osrmHash )
5151 . awaitAll ( callback ) ;
@@ -61,33 +61,29 @@ module.exports = function() {
6161 this . cleanupProcessedFeatureCache = ( directory , osrmHash , callback ) => {
6262 let parentPath = path . resolve ( path . join ( directory , '..' ) ) ;
6363 fs . readdir ( parentPath , ( err , files ) => {
64+ if ( err ) return callback ( err ) ;
6465 let q = d3 . queue ( ) ;
65- function runStats ( path , callback ) {
66- fs . stat ( path , ( err , stat ) => {
66+ files . forEach ( ( f ) => {
67+ let filePath = path . join ( parentPath , f ) ;
68+ fs . stat ( filePath , ( err , stat ) => {
6769 if ( err ) return callback ( err ) ;
68- callback ( null , { file : path , stat : stat } ) ;
69- } ) ;
70- }
71- files . map ( f => { q . defer ( runStats , path . join ( parentPath , f ) ) ; } ) ;
72- q . awaitAll ( ( err , results ) => {
73- if ( err ) return callback ( err ) ;
74- let q = d3 . queue ( ) ;
75- results . forEach ( r => {
76- if ( r . stat . isDirectory ( ) && r . file . search ( osrmHash ) < 0 ) {
77- q . defer ( rimraf , r . file ) ;
70+ if ( stat . isDirectory ( ) && filePath . search ( osrmHash ) < 0 ) {
71+ rm ( filePath , { recursive : true , force : true } ) ;
7872 }
7973 } ) ;
80- q . awaitAll ( callback ) ;
8174 } ) ;
75+ q . awaitAll ( callback ) ;
8276 } ) ;
8377 } ;
8478
8579 this . cleanupFeatureCache = ( directory , featureHash , callback ) => {
8680 let parentPath = path . resolve ( path . join ( directory , '..' ) ) ;
8781 fs . readdir ( parentPath , ( err , files ) => {
82+ if ( err ) return callback ( err ) ;
8883 let q = d3 . queue ( ) ;
89- files . filter ( name => { return name !== featureHash ; } )
90- . map ( ( f ) => { q . defer ( rimraf , path . join ( parentPath , f ) ) ; } ) ;
84+ files . filter ( ( name ) => name !== featureHash ) . forEach ( ( f ) => {
85+ rm ( path . join ( parentPath , f ) , { recursive : true , force : true } ) ;
86+ } ) ;
9187 q . awaitAll ( callback ) ;
9288 } ) ;
9389 } ;
0 commit comments