12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // Generated by CoffeeScript 1.12.5
- 'use strict';
- var DEBUG, baseStream, through;
- baseStream = require('stream');
- through = require('through2');
- DEBUG = process.env.NODE_ENV === 'development';
- /*
- * Taps into the pipeline and allows user to easily route data through
- * another stream or change content.
- */
- module.exports = function(lambda) {
- var modifyFile, utils;
- utils = function(tapStream, file) {
- return {
- /*
- * Routes through another stream. The filter must not be
- * created. This will create the filter as needed.
- *
- * @param filter {stream}
- * @param args {Array} Array containg arguments to apply to filter.
- *
- * @example
- * t.through coffee, [{bare: true}]
- */
- through: function(filter, args) {
- var stream;
- if (DEBUG) {
- if (!Array.isArray(args)) {
- throw new TypeError("Args must be an array to `apply` to the filter");
- }
- }
- stream = filter.apply(null, args);
- stream.on("error", function(err) {
- return tapStream.emit("error", err);
- });
- stream.write(file);
- return stream;
- }
- };
- };
- modifyFile = function(file, enc, cb) {
- var data, inst, next, obj;
- inst = {
- file: file
- };
- obj = lambda(inst.file, utils(this, inst.file), inst);
- next = (function(_this) {
- return function() {
- _this.push(file);
- return cb();
- };
- })(this);
- if (obj instanceof baseStream && !obj._readableState.ended) {
- obj.on('end', next);
- return obj.on('data', data = function() {
- obj.removeListener('end', next);
- obj.removeListener('data', data);
- return next();
- });
- } else {
- return next();
- }
- };
- return through.obj(modifyFile, function(cb) {
- return cb();
- });
- };
- //# sourceMappingURL=tap.js.map
|