diff --git a/ts/gulpbrowser.browserify.ts b/ts/gulpbrowser.browserify.ts index 4001cf2..6c656cc 100644 --- a/ts/gulpbrowser.browserify.ts +++ b/ts/gulpbrowser.browserify.ts @@ -2,10 +2,15 @@ import plugins = require("./gulpbrowser.plugins"); -let browserify = function() { - +let browserify = function(transforms) { + + transforms = transforms || []; + if (typeof transforms === 'function') { + transforms = [transforms]; + } + let forEach = function(file, enc, cb){ // do this with every chunk (file in gulp terms) - + let bundleCallback = function(err, bufferedContent) { // our bundle callback for when browserify is finished if (Buffer.isBuffer(bufferedContent)){ file.contents = bufferedContent; @@ -16,21 +21,30 @@ let browserify = function() { } cb(null,file); }; - + if(file.contents.length > 0){ - plugins.browserify(file, { basedir: file.base }) - .bundle(bundleCallback); + let browserified = plugins.browserify(file, { basedir: file.base }); + + transforms.forEach(function (transform) { + if (typeof transform === 'function') { + browserified.transform(transform); + } else { + browserified.transform(transform.transform, transform.options); + } + }); + + browserified.bundle(bundleCallback); } else { plugins.beautylog.warn("gulp-browser: .browserify() file.contents appears to be empty"); cb(null,file); }; } - + let atEnd = function(cb){ cb(); } // no need to clean up after ourselves - + return plugins.through.obj(forEach,atEnd); // this is the through object that gets returned by gulpBrowser.browserify(); }; -export = browserify; \ No newline at end of file +export = browserify;