refactor watch module

This commit is contained in:
Iuri Matias 2016-09-24 22:05:16 -04:00
parent 656ac157d3
commit 4c1f3fb8f6
1 changed files with 42 additions and 54 deletions

View File

@ -37,70 +37,58 @@ Watch.prototype.watchAssets = function(embarkConfig, callback) {
filesToWatch.push(appConfig[targetFile]);
}
this.logger.trace(filesToWatch);
var assetWatcher = chokidar.watch(filesToWatch, {
ignored: /[\/\\]\./, persistent: true, ignoreInitial: true, followSymlinks: true
});
assetWatcher
.on('add', path => {
self.logger.info(`File ${path} has been added`);
this.watchFiles(
filesToWatch,
function(eventName, path) {
self.logger.info(`${eventName}: ${path}`);
self.trigger('rebuildAssets', path);
})
.on('change', path => {
self.logger.info(`File ${path} has been changed`);
self.trigger('rebuildAssets', path);
})
.on('unlink', path => {
self.logger.info(`File ${path} has been removed`);
self.trigger('rebuildAssets', path);
})
.on('ready', () => callback());
},
function() {
callback();
}
);
};
Watch.prototype.watchContracts = function(embarkConfig, callback) {
var contractsToWatch = [];
contractsToWatch.push(embarkConfig.contracts);
this.logger.trace(contractsToWatch);
var contractWatcher = chokidar.watch(contractsToWatch, {
ignored: /[\/\\]\./, persistent: true, ignoreInitial: true, followSymlinks: true
});
contractWatcher
.on('add', path => {
self.logger.info(`File ${path} has been added`);
var self = this;
this.watchFiles(
[embarkConfig.contracts],
function(eventName, path) {
self.logger.info(`${eventName}: ${path}`);
self.trigger('redeploy', path);
})
.on('change', path => {
self.logger.info(`File ${path} has been changed`);
self.trigger('redeploy', path);
})
.on('unlink', path => this.logger.info(`File ${path} has been removed`))
.on('ready', () => callback());
},
function() {
callback();
}
);
};
Watch.prototype.watchConfigs = function(callback) {
var configWatcher = chokidar.watch("config/**/contracts.json", {
var self = this;
this.watchFiles(
"config/**/contracts.json",
function(eventName, path) {
self.logger.info(`${eventName}: ${path}`);
self.trigger('redeploy', path);
},
function() {
callback();
}
);
};
Watch.prototype.watchFiles = function(files, changeCallback, doneCallback) {
this.logger.trace(files);
var configWatcher = chokidar.watch(files, {
ignored: /[\/\\]\./, persistent: true, ignoreInitial: true, followSymlinks: true
});
configWatcher
.on('add', path => {
self.logger.info(`File ${path} has been added`);
self.trigger('redeploy', path);
})
.on('change', path => {
self.logger.info(`File ${path} has been changed`);
self.trigger('redeploy', path);
})
.on('unlink', path => {
self.logger.info(`File ${path} has been removed`);
self.trigger('redeploy', path);
})
.on('ready', () => callback());
.on('add', path => changeCallback('add', path))
.on('change', path => changeCallback('add', path))
.on('unlink', path => changeCallback('add', path))
.on('ready', doneCallback);
};
Watch.prototype.on = function(eventName, callback) {