UNPKG

820 BJavaScriptView Raw
1/*
2 * pub-server watch.js
3 * wrapper around watch library (chokidar)
4 * used by serve-statics and watch-sources
5 *
6 * copyright 2015, Jurgen Leschner - github.com/jldec - MIT license
7 */
8
9var debug = require('debug')('pub:watch');
10
11var path = require('path');
12var chokidar = require('chokidar');
13var u = require('pub-util');
14
15module.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}