@@ -7,17 +7,22 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
7
7
8
8
private filesStats : { [ filePath : string ] : VirtualFileStats } = { } ;
9
9
private directoryStats : { [ filePath : string ] : VirtualDirStats } = { } ;
10
- private originalFileSystem : FileSystem ;
10
+ private inputFileSystem : FileSystem ;
11
+ private outputFileSystem : FileSystem ;
11
12
12
13
constructor ( private fileCache : FileCache ) {
13
14
}
14
15
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 ;
17
22
}
18
23
19
24
isSync ( ) {
20
- return this . originalFileSystem . isSync ( ) ;
25
+ return this . inputFileSystem . isSync ( ) ;
21
26
}
22
27
23
28
stat ( path : string , callback : Function ) : any {
@@ -32,19 +37,19 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
32
37
return callback ( null , directoryStat ) ;
33
38
}
34
39
// fallback to list
35
- return this . originalFileSystem . stat ( path , callback ) ;
40
+ return this . inputFileSystem . stat ( path , callback ) ;
36
41
}
37
42
38
43
readdir ( path : string , callback : Function ) : any {
39
- return this . originalFileSystem . readdir ( path , callback ) ;
44
+ return this . inputFileSystem . readdir ( path , callback ) ;
40
45
}
41
46
42
47
readJson ( path : string , callback : Function ) : any {
43
- return this . originalFileSystem . readJson ( path , callback ) ;
48
+ return this . inputFileSystem . readJson ( path , callback ) ;
44
49
}
45
50
46
51
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 ) => {
48
53
callback ( err , response ) ;
49
54
} ) ;
50
55
}
@@ -63,7 +68,7 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
63
68
callback ( null , new Buffer ( file . content ) ) ;
64
69
return ;
65
70
}
66
- return this . originalFileSystem . readFile ( path , callback ) ;
71
+ return this . inputFileSystem . readFile ( path , callback ) ;
67
72
}
68
73
69
74
addVirtualFile ( filePath : string , fileContent : string ) {
@@ -106,7 +111,19 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
106
111
}
107
112
108
113
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 ) ;
110
127
}
111
128
112
129
join ( dirPath : string , fileName : string ) {
@@ -116,6 +133,6 @@ export class HybridFileSystem implements FileSystem, VirtualFileSystem {
116
133
writeFile ( filePath : string , fileContent : Buffer , callback : Function ) {
117
134
const stringContent = fileContent . toString ( ) ;
118
135
this . addVirtualFile ( filePath , stringContent ) ;
119
- callback ( ) ;
136
+ return this . outputFileSystem . writeFile ( filePath , fileContent , callback ) ;
120
137
}
121
138
}
0 commit comments