Skip to content

Commit e4ecda2

Browse files
committed
Only copy changed files when watching
1 parent 6ebe982 commit e4ecda2

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

lib/build-bundler.js

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,17 @@ let readFile = promisify(fs.readFile);
77
let readdir = promisify(fs.readdir);
88

99
module.exports = ({ source, target, fingerprint, configDir }) => {
10-
// TODO: Only copy changed files
11-
return _ => {
12-
return readdir(source).then(sources => {
10+
return files => {
11+
let filesToCopy;
12+
13+
if(files) {
14+
filesToCopy = filesWithinDirectory(source, files);
15+
} else {
16+
// TODO: Get that entire tree
17+
filesToCopy = readdir(source);
18+
}
19+
20+
return filesToCopy.then(sources => {
1321
return Promise.all(sources.map(fileName => {
1422
let sourcePath = path.join(source, fileName);
1523

@@ -32,3 +40,11 @@ module.exports = ({ source, target, fingerprint, configDir }) => {
3240
});
3341
};
3442
};
43+
44+
function filesWithinDirectory(directory, files) {
45+
return new Promise(resolve => {
46+
resolve(files.
47+
map(file => path.relative(directory, file)).
48+
filter(file => !file.startsWith("..")));
49+
});
50+
}

0 commit comments

Comments
 (0)