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