diff --git a/lib/tap.js b/lib/tap.js index 1e3941c..b7c74a2 100644 --- a/lib/tap.js +++ b/lib/tap.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.5 +// Generated by CoffeeScript 1.12.7 'use strict'; var DEBUG, baseStream, through; @@ -14,8 +14,10 @@ DEBUG = process.env.NODE_ENV === 'development'; * another stream or change content. */ -module.exports = function(lambda) { - var modifyFile, utils; +module.exports = function() { + var lambda, lambdaArgs, modifyFile, utils; + lambda = arguments[0]; + lambdaArgs = [].slice.call(arguments, 1); utils = function(tapStream, file) { return { @@ -50,7 +52,7 @@ module.exports = function(lambda) { inst = { file: file }; - obj = lambda(inst.file, utils(this, inst.file), inst); + obj = lambda.apply(null, [inst.file, utils(this, inst.file), inst].concat(lambdaArgs)); next = (function(_this) { return function() { _this.push(file); diff --git a/lib/tap.js.map b/lib/tap.js.map index 94ff608..0d713bf 100644 --- a/lib/tap.js.map +++ b/lib/tap.js.map @@ -3,8 +3,8 @@ "file": "tap.js", "sourceRoot": "..", "sources": [ - "src/tap.coffee" + "src\\tap.coffee" ], "names": [], - "mappings": ";AAAA;AAAA,IAAA;;AAEA,UAAA,GAAa,OAAA,CAAQ,QAAR;;AACb,OAAA,GAAU,OAAA,CAAQ,UAAR;;AAEV,KAAA,GAAQ,OAAO,CAAC,GAAG,CAAC,QAAZ,KAAwB;;;AAGhC;;;;;AAIA,MAAM,CAAC,OAAP,GAAiB,SAAC,MAAD;AACf,MAAA;EAAA,KAAA,GAAQ,SAAC,SAAD,EAAY,IAAZ;WAEN;;AAAA;;;;;;;;;;MAUA,OAAA,EAAS,SAAC,MAAD,EAAS,IAAT;AAEP,YAAA;QAAA,IAAG,KAAH;UACE,IAAG,CAAI,KAAK,CAAC,OAAN,CAAc,IAAd,CAAP;AACE,kBAAM,IAAI,SAAJ,CAAc,gDAAd,EADR;WADF;;QAIA,MAAA,GAAS,MAAM,CAAC,KAAP,CAAa,IAAb,EAAmB,IAAnB;QACT,MAAM,CAAC,EAAP,CAAU,OAAV,EAAmB,SAAC,GAAD;iBACjB,SAAS,CAAC,IAAV,CAAe,OAAf,EAAwB,GAAxB;QADiB,CAAnB;QAMA,MAAM,CAAC,KAAP,CAAa,IAAb;eACA;MAdO,CAVT;;EAFM;EA4BR,UAAA,GAAa,SAAC,IAAD,EAAO,GAAP,EAAY,EAAZ;AACX,QAAA;IAAA,IAAA,GAAO;MAAA,IAAA,EAAM,IAAN;;IACP,GAAA,GAAM,MAAA,CAAO,IAAI,CAAC,IAAZ,EAAkB,KAAA,CAAM,IAAN,EAAY,IAAI,CAAC,IAAjB,CAAlB,EAA0C,IAA1C;IAEN,IAAA,GAAO,CAAA,SAAA,KAAA;aAAA,SAAA;QACL,KAAI,CAAC,IAAL,CAAU,IAAV;eACA,EAAA,CAAA;MAFK;IAAA,CAAA,CAAA,CAAA,IAAA;IAMP,IAAG,GAAA,YAAe,UAAf,IAA8B,CAAI,GAAG,CAAC,cAAc,CAAC,KAAxD;MAEE,GAAG,CAAC,EAAJ,CAAO,KAAP,EAAc,IAAd;aACA,GAAG,CAAC,EAAJ,CAAO,MAAP,EAAe,IAAA,GAAO,SAAA;QACpB,GAAG,CAAC,cAAJ,CAAmB,KAAnB,EAA0B,IAA1B;QACA,GAAG,CAAC,cAAJ,CAAmB,MAAnB,EAA2B,IAA3B;eACA,IAAA,CAAA;MAHoB,CAAtB,EAHF;KAAA,MAAA;aAQE,IAAA,CAAA,EARF;;EAVW;AAoBb,SAAO,OAAO,CAAC,GAAR,CAAY,UAAZ,EAAwB,SAAC,EAAD;WAAQ,EAAA,CAAA;EAAR,CAAxB;AAjDQ" + "mappings": ";AAAA;AAAA,IAAA;;AAEA,UAAA,GAAa,OAAA,CAAQ,QAAR;;AACb,OAAA,GAAU,OAAA,CAAQ,UAAR;;AAEV,KAAA,GAAQ,OAAO,CAAC,GAAG,CAAC,QAAZ,KAAwB;;;AAGhC;;;;;AAIA,MAAM,CAAC,OAAP,GAAiB,SAAA;AAEf,MAAA;EAAA,MAAA,GAAS,SAAU,CAAA,CAAA;EACnB,UAAA,GAAa,EAAE,CAAC,KAAK,CAAC,IAAT,CAAc,SAAd,EAAyB,CAAzB;EAEb,KAAA,GAAQ,SAAC,SAAD,EAAY,IAAZ;WAEN;;AAAA;;;;;;;;;;MAUA,OAAA,EAAS,SAAC,MAAD,EAAS,IAAT;AAEP,YAAA;QAAA,IAAG,KAAH;UACE,IAAG,CAAI,KAAK,CAAC,OAAN,CAAc,IAAd,CAAP;AACE,kBAAM,IAAI,SAAJ,CAAc,gDAAd,EADR;WADF;;QAIA,MAAA,GAAS,MAAM,CAAC,KAAP,CAAa,IAAb,EAAmB,IAAnB;QACT,MAAM,CAAC,EAAP,CAAU,OAAV,EAAmB,SAAC,GAAD;iBACjB,SAAS,CAAC,IAAV,CAAe,OAAf,EAAwB,GAAxB;QADiB,CAAnB;QAMA,MAAM,CAAC,KAAP,CAAa,IAAb;eACA;MAdO,CAVT;;EAFM;EA4BR,UAAA,GAAa,SAAC,IAAD,EAAO,GAAP,EAAY,EAAZ;AACX,QAAA;IAAA,IAAA,GAAO;MAAA,IAAA,EAAM,IAAN;;IACP,GAAA,GAAM,MAAM,CAAC,KAAP,CAAa,IAAb,EAAmB,CAAC,IAAI,CAAC,IAAN,EAAY,KAAA,CAAM,IAAN,EAAY,IAAI,CAAC,IAAjB,CAAZ,EAAoC,IAApC,CAAyC,CAAC,MAA1C,CAAiD,UAAjD,CAAnB;IAEN,IAAA,GAAO,CAAA,SAAA,KAAA;aAAA,SAAA;QACL,KAAI,CAAC,IAAL,CAAU,IAAV;eACA,EAAA,CAAA;MAFK;IAAA,CAAA,CAAA,CAAA,IAAA;IAMP,IAAG,GAAA,YAAe,UAAf,IAA8B,CAAI,GAAG,CAAC,cAAc,CAAC,KAAxD;MAEE,GAAG,CAAC,EAAJ,CAAO,KAAP,EAAc,IAAd;aACA,GAAG,CAAC,EAAJ,CAAO,MAAP,EAAe,IAAA,GAAO,SAAA;QACpB,GAAG,CAAC,cAAJ,CAAmB,KAAnB,EAA0B,IAA1B;QACA,GAAG,CAAC,cAAJ,CAAmB,MAAnB,EAA2B,IAA3B;eACA,IAAA,CAAA;MAHoB,CAAtB,EAHF;KAAA,MAAA;aAQE,IAAA,CAAA,EARF;;EAVW;AAoBb,SAAO,OAAO,CAAC,GAAR,CAAY,UAAZ,EAAwB,SAAC,EAAD;WAAQ,EAAA,CAAA;EAAR,CAAxB;AArDQ" } \ No newline at end of file diff --git a/src/tap.coffee b/src/tap.coffee index 6c650c5..a562682 100644 --- a/src/tap.coffee +++ b/src/tap.coffee @@ -10,7 +10,11 @@ DEBUG = process.env.NODE_ENV is 'development' # Taps into the pipeline and allows user to easily route data through # another stream or change content. ### -module.exports = (lambda) -> +module.exports = () -> + + lambda = arguments[0]; + lambdaArgs = [].slice.call(arguments, 1); + utils = (tapStream, file) -> ### @@ -41,7 +45,7 @@ module.exports = (lambda) -> modifyFile = (file, enc, cb) -> inst = file: file - obj = lambda(inst.file, utils(this, inst.file), inst) + obj = lambda.apply(null, [inst.file, utils(this, inst.file), inst].concat(lambdaArgs)) next = () => this.push(file) diff --git a/tests/args.test.coffee b/tests/args.test.coffee new file mode 100644 index 0000000..dea710d --- /dev/null +++ b/tests/args.test.coffee @@ -0,0 +1,36 @@ +fs = require 'fs' +path = require 'path' +gulp = require 'gulp' +tap = require '../' +tapTest = require 'tap' + +test2 = (file, a, b, test) -> + test.ok true + +test3 = (file, a, b, test, value) -> + if value == "my value" + test.ok true + test.end() + else + test.ok false + test.end() + +# helper function to get a path relative to the root +getPath = (rel) -> path.resolve __dirname, '..', rel + +tapTest.test "works with passing 0, 1, n args to tap", (test) -> + + test.plan 3 + + fixturePath = getPath 'tests/fixtures/' + + gulp.src fixturePath + '/js.js' + .pipe tap (file) -> + test.ok true + + gulp.src fixturePath + '/js.js' + .pipe tap test2, test + + gulp.src fixturePath + '/js.js' + .pipe tap test3, test, "my value" +