1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | var debug = require('debug')('pub:watch');
|
11 |
|
12 | var path = require('path');
|
13 | var ppath = path.posix || path;
|
14 | var chokidar = require('chokidar');
|
15 | var u = require('pub-util');
|
16 |
|
17 | module.exports = function watch(src, onEvent) {
|
18 |
|
19 | var wDir = src.glob ? ppath.join(src.path, src.glob) : src.path;
|
20 |
|
21 | var wOpts = u.assign(
|
22 |
|
23 | { depth: (src.depth && src.depth - 1) || 0,
|
24 | ignoreInitial: true,
|
25 | interval: '1s' },
|
26 |
|
27 | src.watch);
|
28 |
|
29 | wOpts.interval = u.ms(wOpts.interval);
|
30 |
|
31 | debug('watching %s depth:%s, %s', src.name, wOpts.depth, wDir);
|
32 |
|
33 | chokidar.watch(wDir, wOpts)
|
34 | .on('all', function(evt, path) {
|
35 | debug('%s %s %s', evt, src.name, path);
|
36 | onEvent(evt, path);
|
37 | });
|
38 |
|
39 | };
|