50 lines
		
	
	
		
			715 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			715 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| module.exports = function (cb) {
 | |
| 	var stdin = process.stdin;
 | |
| 	var ret = '';
 | |
| 
 | |
| 	if (stdin.isTTY) {
 | |
| 		setImmediate(cb, '');
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	stdin.setEncoding('utf8');
 | |
| 
 | |
| 	stdin.on('readable', function () {
 | |
| 		var chunk;
 | |
| 
 | |
| 		while (chunk = stdin.read()) {
 | |
| 			ret += chunk;
 | |
| 		}
 | |
| 	});
 | |
| 
 | |
| 	stdin.on('end', function () {
 | |
| 		cb(ret);
 | |
| 	});
 | |
| };
 | |
| 
 | |
| module.exports.buffer = function (cb) {
 | |
| 	var stdin = process.stdin;
 | |
| 	var ret = [];
 | |
| 	var len = 0;
 | |
| 
 | |
| 	if (stdin.isTTY) {
 | |
| 		setImmediate(cb, new Buffer(''));
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	stdin.on('readable', function () {
 | |
| 		var chunk;
 | |
| 
 | |
| 		while (chunk = stdin.read()) {
 | |
| 			ret.push(chunk);
 | |
| 			len += chunk.length;
 | |
| 		}
 | |
| 	});
 | |
| 
 | |
| 	stdin.on('end', function () {
 | |
| 		cb(Buffer.concat(ret, len));
 | |
| 	});
 | |
| };
 |