centerAlign.js 566 B

123456789101112131415161718192021
  1. var longest = require('./longest');
  2. var isArr = require('./isArr');
  3. var isUndef = require('./isUndef');
  4. var map = require('./map');
  5. var lpad = require('./lpad');
  6. exports = function(str, width) {
  7. var ret = str;
  8. if (!isArr(ret)) {
  9. ret = ret.split(regLineBreak);
  10. }
  11. if (isUndef(width)) width = longest(str);
  12. ret = map(ret, function(str) {
  13. var len = str.length;
  14. return lpad(str, floor((width - len) / 2) + len);
  15. });
  16. return ret.join('\n');
  17. };
  18. var regLineBreak = /\n/g;
  19. var floor = Math.floor;
  20. module.exports = exports;