declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; import base = require("./base"); var gulp = require('gulp'); var path = require('path'); var _ = require('lodash'); var $ = require('gulp-load-plugins')({ lazy: true }); var gutil = $.util; var errorHandler = require('./helpers/errorHandler'); var logs = require('./helpers/logs'); class Watcher extends base.BaseTask { constructor() { super(); return this; } static taskName:string = 'watcher'; static config(task, tasks, userOptions) { return {}; } static gulp(options, settings, task, tasks) { Watcher.checkArguments(options, settings, task, tasks); var browserSync = require('browser-sync'); var reload = browserSync.reload; var taskListing = Watcher.storage; for (var taskKey in taskListing) { if(taskListing.hasOwnProperty(taskKey)) { (function(taskKey){ var taskWatcher = taskListing[taskKey]; logs(taskWatcher.dependencies.join(' | ') + ' watching ['+ taskWatcher.files.join(', ') + ']'); var stream = gulp .watch(taskWatcher.files, taskWatcher.dependencies); if(browserSync.active) { stream.on('change', reload); } if(options && typeof(options.onAnyChange) === 'function') { stream.on('change', options.onAnyChange); } stream.on('error', gutil.log); })(taskKey); } } } } export = Watcher;