wrapString.js
1 "use strict"; 2 var __importDefault = (this && this.__importDefault) || function (mod) { 3 return (mod && mod.__esModule) ? mod : { "default": mod }; 4 }; 5 Object.defineProperty(exports, "__esModule", { value: true }); 6 exports.wrapString = void 0; 7 const slice_ansi_1 = __importDefault(require("slice-ansi")); 8 const string_width_1 = __importDefault(require("string-width")); 9 /** 10 * Creates an array of strings split into groups the length of size. 11 * This function works with strings that contain ASCII characters. 12 * 13 * wrapText is different from would-be "chunk" implementation 14 * in that whitespace characters that occur on a chunk size limit are trimmed. 15 * 16 */ 17 const wrapString = (subject, size) => { 18 let subjectSlice = subject; 19 const chunks = []; 20 do { 21 chunks.push(slice_ansi_1.default(subjectSlice, 0, size)); 22 subjectSlice = slice_ansi_1.default(subjectSlice, size).trim(); 23 } while (string_width_1.default(subjectSlice)); 24 return chunks; 25 }; 26 exports.wrapString = wrapString;