break.js 703 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use strict'
  2. var locate = require('../locate/break')
  3. module.exports = hardBreak
  4. hardBreak.locator = locate
  5. var space = ' '
  6. var lineFeed = '\n'
  7. var minBreakLength = 2
  8. function hardBreak(eat, value, silent) {
  9. var length = value.length
  10. var index = -1
  11. var queue = ''
  12. var character
  13. while (++index < length) {
  14. character = value.charAt(index)
  15. if (character === lineFeed) {
  16. if (index < minBreakLength) {
  17. return
  18. }
  19. /* istanbul ignore if - never used (yet) */
  20. if (silent) {
  21. return true
  22. }
  23. queue += character
  24. return eat(queue)({type: 'break'})
  25. }
  26. if (character !== space) {
  27. return
  28. }
  29. queue += character
  30. }
  31. }