wrapCell.js 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.wrapCell = void 0;
  4. const utils_1 = require("./utils");
  5. const wrapString_1 = require("./wrapString");
  6. const wrapWord_1 = require("./wrapWord");
  7. /**
  8. * Wrap a single cell value into a list of lines
  9. *
  10. * Always wraps on newlines, for the remainder uses either word or string wrapping
  11. * depending on user configuration.
  12. *
  13. */
  14. const wrapCell = (cellValue, cellWidth, useWrapWord) => {
  15. // First split on literal newlines
  16. const cellLines = utils_1.splitAnsi(cellValue);
  17. // Then iterate over the list and word-wrap every remaining line if necessary.
  18. for (let lineNr = 0; lineNr < cellLines.length;) {
  19. let lineChunks;
  20. if (useWrapWord) {
  21. lineChunks = wrapWord_1.wrapWord(cellLines[lineNr], cellWidth);
  22. }
  23. else {
  24. lineChunks = wrapString_1.wrapString(cellLines[lineNr], cellWidth);
  25. }
  26. // Replace our original array element with whatever the wrapping returned
  27. cellLines.splice(lineNr, 1, ...lineChunks);
  28. lineNr += lineChunks.length;
  29. }
  30. return cellLines;
  31. };
  32. exports.wrapCell = wrapCell;