@@ -7,17 +7,22 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
77
88  private  filesStats : {  [ filePath : string ] : VirtualFileStats  }  =  { } ; 
99  private  directoryStats : {  [ filePath : string ] : VirtualDirStats  }  =  { } ; 
10-   private  originalFileSystem : FileSystem ; 
10+   private  inputFileSystem : FileSystem ; 
11+   private  outputFileSystem : FileSystem ; 
1112
1213  constructor ( private  fileCache : FileCache )  { 
1314  } 
1415
15-   setFileSystem ( fs : FileSystem )  { 
16-     this . originalFileSystem  =  fs ; 
16+   setInputFileSystem ( fs : FileSystem )  { 
17+     this . inputFileSystem  =  fs ; 
18+   } 
19+ 
20+   setOutputFileSystem ( fs : FileSystem )  { 
21+     this . outputFileSystem  =  fs ; 
1722  } 
1823
1924  isSync ( )  { 
20-     return  this . originalFileSystem . isSync ( ) ; 
25+     return  this . inputFileSystem . isSync ( ) ; 
2126  } 
2227
2328  stat ( path : string ,  callback : Function ) : any  { 
@@ -32,19 +37,19 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
3237      return  callback ( null ,  directoryStat ) ; 
3338    } 
3439    // fallback to list 
35-     return  this . originalFileSystem . stat ( path ,  callback ) ; 
40+     return  this . inputFileSystem . stat ( path ,  callback ) ; 
3641  } 
3742
3843  readdir ( path : string ,  callback : Function ) : any  { 
39-     return  this . originalFileSystem . readdir ( path ,  callback ) ; 
44+     return  this . inputFileSystem . readdir ( path ,  callback ) ; 
4045  } 
4146
4247  readJson ( path : string ,  callback : Function ) : any  { 
43-     return  this . originalFileSystem . readJson ( path ,  callback ) ; 
48+     return  this . inputFileSystem . readJson ( path ,  callback ) ; 
4449  } 
4550
4651  readlink ( path : string ,  callback : Function ) : any  { 
47-     return  this . originalFileSystem . readlink ( path ,  ( err : Error ,  response : any )  =>  { 
52+     return  this . inputFileSystem . readlink ( path ,  ( err : Error ,  response : any )  =>  { 
4853      callback ( err ,  response ) ; 
4954    } ) ; 
5055  } 
@@ -63,7 +68,7 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
6368      callback ( null ,  new  Buffer ( file . content ) ) ; 
6469      return ; 
6570    } 
66-     return  this . originalFileSystem . readFile ( path ,  callback ) ; 
71+     return  this . inputFileSystem . readFile ( path ,  callback ) ; 
6772  } 
6873
6974  addVirtualFile ( filePath : string ,  fileContent : string )  { 
@@ -106,7 +111,19 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
106111  } 
107112
108113  mkdirp ( filePath : string ,  callback : Function )  { 
109-     callback ( ) ; 
114+     return  this . outputFileSystem . mkdirp ( filePath ,  callback ) ; 
115+   } 
116+ 
117+   mkdir ( filePath : string ,  callback : Function )  { 
118+     return  this . outputFileSystem . mkdir ( filePath ,  callback ) ; 
119+   } 
120+ 
121+   rmdir ( filePath : string ,  callback : Function )  { 
122+     return  this . outputFileSystem . rmdir ( filePath ,  callback ) ; 
123+   } 
124+ 
125+   unlink ( filePath : string ,  callback : Function )  { 
126+     return  this . outputFileSystem . unlink ( filePath ,  callback ) ; 
110127  } 
111128
112129  join ( dirPath : string ,  fileName : string )  { 
@@ -116,6 +133,6 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
116133  writeFile ( filePath : string ,  fileContent : Buffer ,  callback : Function )  { 
117134    const  stringContent  =  fileContent . toString ( ) ; 
118135    this . addVirtualFile ( filePath ,  stringContent ) ; 
119-     callback ( ) ; 
136+     return   this . outputFileSystem . writeFile ( filePath ,   fileContent ,   callback ) ; 
120137  } 
121138} 
0 commit comments