You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
505 B
21 lines
505 B
'use strict'; |
|
|
|
const detectNewline = string => { |
|
if (typeof string !== 'string') { |
|
throw new TypeError('Expected a string'); |
|
} |
|
|
|
const newlines = string.match(/(?:\r?\n)/g) || []; |
|
|
|
if (newlines.length === 0) { |
|
return; |
|
} |
|
|
|
const crlf = newlines.filter(newline => newline === '\r\n').length; |
|
const lf = newlines.length - crlf; |
|
|
|
return crlf > lf ? '\r\n' : '\n'; |
|
}; |
|
|
|
module.exports = detectNewline; |
|
module.exports.graceful = string => (typeof string === 'string' && detectNewline(string)) || '\n';
|
|
|