You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
'use strict'; |
|
|
|
var util = require('util'); |
|
var Undertaker = require('undertaker'); |
|
var vfs = require('vinyl-fs'); |
|
var watch = require('glob-watcher'); |
|
|
|
function Gulp() { |
|
Undertaker.call(this); |
|
|
|
// Bind the functions for destructuring |
|
this.watch = this.watch.bind(this); |
|
this.task = this.task.bind(this); |
|
this.series = this.series.bind(this); |
|
this.parallel = this.parallel.bind(this); |
|
this.registry = this.registry.bind(this); |
|
this.tree = this.tree.bind(this); |
|
this.lastRun = this.lastRun.bind(this); |
|
this.src = this.src.bind(this); |
|
this.dest = this.dest.bind(this); |
|
this.symlink = this.symlink.bind(this); |
|
} |
|
util.inherits(Gulp, Undertaker); |
|
|
|
Gulp.prototype.src = vfs.src; |
|
Gulp.prototype.dest = vfs.dest; |
|
Gulp.prototype.symlink = vfs.symlink; |
|
Gulp.prototype.watch = function(glob, opt, task) { |
|
if (typeof opt === 'string' || typeof task === 'string' || |
|
Array.isArray(opt) || Array.isArray(task)) { |
|
throw new Error('watching ' + glob + ': watch task has to be ' + |
|
'a function (optionally generated by using gulp.parallel ' + |
|
'or gulp.series)'); |
|
} |
|
|
|
if (typeof opt === 'function') { |
|
task = opt; |
|
opt = {}; |
|
} |
|
|
|
opt = opt || {}; |
|
|
|
var fn; |
|
if (typeof task === 'function') { |
|
fn = this.parallel(task); |
|
} |
|
|
|
return watch(glob, opt, fn); |
|
}; |
|
|
|
// Let people use this class from our instance |
|
Gulp.prototype.Gulp = Gulp; |
|
|
|
var inst = new Gulp(); |
|
module.exports = inst;
|
|
|