初始化提交
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
const chokidar = require('chokidar');
|
||||
|
||||
let watchedPath = {};
|
||||
|
||||
const watch = function(inPath) {
|
||||
if (watchedPath[watchedPath]) {
|
||||
return;
|
||||
}
|
||||
watchedPath[inPath] = chokidar.watch(inPath, {
|
||||
persistent: true,
|
||||
depth: 0,
|
||||
ignoreInitial: true
|
||||
});
|
||||
|
||||
watchedPath[inPath].on('add', (actionPath, stats) => {
|
||||
self.postMessage({
|
||||
watcher: inPath,
|
||||
event: 'add',
|
||||
path: actionPath,
|
||||
stats
|
||||
});
|
||||
});
|
||||
|
||||
watchedPath[inPath].on('addDir', (actionPath, stats) => {
|
||||
self.postMessage({
|
||||
watcher: inPath,
|
||||
event: 'addDir',
|
||||
path: actionPath,
|
||||
stats
|
||||
});
|
||||
});
|
||||
|
||||
watchedPath[inPath].on('unlink', (actionPath, stats) => {
|
||||
self.postMessage({
|
||||
watcher: inPath,
|
||||
event: 'unlink',
|
||||
path: actionPath,
|
||||
stats
|
||||
});
|
||||
});
|
||||
|
||||
watchedPath[inPath].on('unlinkDir', (actionPath, stats) => {
|
||||
self.postMessage({
|
||||
watcher: inPath,
|
||||
event: 'unlinkDir',
|
||||
path: actionPath,
|
||||
stats
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
const unwatch = function(inPath) {
|
||||
if (!watchedPath[inPath]) {
|
||||
return;
|
||||
}
|
||||
watchedPath[inPath].close();
|
||||
delete watchedPath[inPath];
|
||||
}
|
||||
|
||||
self.addEventListener('message', function(event) {
|
||||
if (event.data.func === 'watch') {
|
||||
watch(...event.data.args);
|
||||
} else if (event.data.func === 'unwatch') {
|
||||
unwatch(...event.data.args);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user