all files / workspace/ stream.js

100% Statements 15/15
75% Branches 9/12
100% Functions 4/4
100% Lines 15/15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44           13× 13× 13×   13×   13× 13×         13×                   22×     13×     13×          
var stream = require('stream');
 
var names = {};
 
for (var name in stream) {
    
    exports[name] = (function(name) {
        
        return function(options) {
            
            options = options || {};
            options.objectMode = options.objectMode === false ? false : true;
            options.highWaterMark = options.highWaterMark || 1;
            
            var asd = new stream[name](options);
            
            asd.name =        options.name;
            asd.name += names[options.name]
                    ? ++names[options.name]
                    : !(names[options.name] = 1) || '';
 
            
            process.env.npm_package_config_debug && asd
                .on('end', console.log.bind(console, asd.name + ' ended'))
                .on('data', console.log.bind(console, asd.name + ' data'))
                .on('drain', console.log.bind(console, asd.name + ' drained'))
                .on('close', console.log.bind(console, asd.name + ' closed'))
                .on('pause', console.log.bind(console, asd.name + ' paused'))
                .on('resume', console.log.bind(console, asd.name + ' resumed'))
                .on('finish', console.log.bind(console, asd.name + ' finished'))
                .on('readable', console.log.bind(console, asd.name + ' is readable'))
                .on('pipe', function(destination) {
                    console.log(destination.name + ' piped to ' + asd.name);
                })
                .on('unpipe', function(destination) {
                    console.log(asd.name + ' unpiped from ' + destination.name);
                });
        
            return asd;
        }
    })(name);
    
}