index.js 465 B

123456789101112131415161718192021222324
  1. 'use strict';
  2. module.exports = function (str) {
  3. if (typeof str !== 'string') {
  4. throw new TypeError('Expected a string');
  5. }
  6. var newlines = (str.match(/(?:\r?\n)/g) || []);
  7. if (newlines.length === 0) {
  8. return null;
  9. }
  10. var crlf = newlines.filter(function (el) {
  11. return el === '\r\n';
  12. }).length;
  13. var lf = newlines.length - crlf;
  14. return crlf > lf ? '\r\n' : '\n';
  15. };
  16. module.exports.graceful = function (str) {
  17. return module.exports(str) || '\n';
  18. };