53 lines
		
	
	
		
			754 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			754 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| const stdin = process.stdin;
 | |
| 
 | |
| module.exports = () => {
 | |
| 	let ret = '';
 | |
| 
 | |
| 	return new Promise(resolve => {
 | |
| 		if (stdin.isTTY) {
 | |
| 			resolve(ret);
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		stdin.setEncoding('utf8');
 | |
| 
 | |
| 		stdin.on('readable', () => {
 | |
| 			let chunk;
 | |
| 
 | |
| 			while ((chunk = stdin.read())) {
 | |
| 				ret += chunk;
 | |
| 			}
 | |
| 		});
 | |
| 
 | |
| 		stdin.on('end', () => {
 | |
| 			resolve(ret);
 | |
| 		});
 | |
| 	});
 | |
| };
 | |
| 
 | |
| module.exports.buffer = () => {
 | |
| 	const ret = [];
 | |
| 	let len = 0;
 | |
| 
 | |
| 	return new Promise(resolve => {
 | |
| 		if (stdin.isTTY) {
 | |
| 			resolve(Buffer.concat([]));
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		stdin.on('readable', () => {
 | |
| 			let chunk;
 | |
| 
 | |
| 			while ((chunk = stdin.read())) {
 | |
| 				ret.push(chunk);
 | |
| 				len += chunk.length;
 | |
| 			}
 | |
| 		});
 | |
| 
 | |
| 		stdin.on('end', () => {
 | |
| 			resolve(Buffer.concat(ret, len));
 | |
| 		});
 | |
| 	});
 | |
| };
 | 
