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'; | ||
|  | }; |