UNPKG

gulp-server-io

Version:

A local static server, plus livereload and a socket.io debugger for your SPA development with gulp

42 lines (41 loc) 1.16 kB
/* eslint no-useless-escape: 0, no-negated-condition: 0 */ /** * The stock watcher without bacon.js wrapper */ const _ = require('lodash'); const chokidar = require('chokidar'); const { ensureIsDir } = require('../utils/helper'); const debug = require('debug')('gulp-server-io:watchers'); // Create a new class to use const DEFAULT_DELAY = 500; /** * Create a much simplify one without bacon using callback * @param {object} config parameters * @param {function} callback fn to call when change * @return {object} event instance */ module.exports = function(config, callback) { const delay = config.debounce || config.interval || DEFAULT_DELAY; const directories = ensureIsDir(config.filePaths); const options = config.watcherOption || {}; debug('watching directories', directories); const w = chokidar.watch( directories, _.extend( { // ignored: /(^|[\/\\])\../, ignoreInitial: true, interval: delay }, options ) ); w.on('all', (e, p) => { debug('files change', e, p); callback({ event: e, path: p }); }); // Return a close method return () => { w.close(); }; };