25 lines
		
	
	
		
			465 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			465 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| module.exports = function (str) {
 | |
| 	if (typeof str !== 'string') {
 | |
| 		throw new TypeError('Expected a string');
 | |
| 	}
 | |
| 
 | |
| 	var newlines = (str.match(/(?:\r?\n)/g) || []);
 | |
| 
 | |
| 	if (newlines.length === 0) {
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	var crlf = newlines.filter(function (el) {
 | |
| 		return el === '\r\n';
 | |
| 	}).length;
 | |
| 
 | |
| 	var lf = newlines.length - crlf;
 | |
| 
 | |
| 	return crlf > lf ? '\r\n' : '\n';
 | |
| };
 | |
| 
 | |
| module.exports.graceful = function (str) {
 | |
| 	return module.exports(str) || '\n';
 | |
| };
 |