12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- "use strict";
- var _ = require("./lodash.custom");
- var utils = require("./utils");
- var Rx = require("rx");
- /**
- * Plugin interface
- * @returns {*|function(this:exports)}
- */
- module.exports.plugin = function (bs) {
- var options = bs.options;
- var emitter = bs.emitter;
- var defaultWatchOptions = options.get("watchOptions").toJS();
- return options.get("files").reduce(function (map, glob, namespace) {
- /**
- * Default CB when not given
- * @param event
- * @param path
- */
- var fn = function (event, path) {
- emitter.emit("file:changed", {
- event: event,
- path: path,
- namespace: namespace
- });
- };
- var jsItem = glob.toJS();
- if (jsItem.globs.length) {
- var watcher = watch(jsItem.globs, defaultWatchOptions, fn);
- map[namespace] = {
- watchers: [watcher]
- };
- }
- if (jsItem.objs.length) {
- jsItem.objs.forEach(function (item) {
- if (!_.isFunction(item.fn)) {
- item.fn = fn;
- }
- var watcher = watch(item.match, item.options || defaultWatchOptions, item.fn.bind(bs.publicInstance));
- if (!map[namespace]) {
- map[namespace] = {
- watchers: [watcher]
- };
- }
- else {
- map[namespace].watchers.push(watcher);
- }
- });
- }
- return map;
- }, {});
- };
- /**
- * @param patterns
- * @param opts
- * @param cb
- * @returns {*}
- */
- function watch(patterns, opts, cb) {
- if (typeof opts === "function") {
- cb = opts;
- opts = {};
- }
- var watcher = require("chokidar").watch(patterns, opts);
- if (_.isFunction(cb)) {
- watcher.on("all", cb);
- }
- // watcher.on('ready', () => {
- // console.log(watcher.getWatched());
- // });
- return watcher;
- }
- module.exports.watch = watch;
- //# sourceMappingURL=file-watcher.js.map
|