import slice from 'slice-ansi'; import stringWidth from 'string-width'; /** * Creates an array of strings split into groups the length of size. * This function works with strings that contain ASCII characters. * * wrapText is different from would-be "chunk" implementation * in that whitespace characters that occur on a chunk size limit are trimmed. * * @param {string} subject * @param {number} size * @returns {Array} */ export default (subject, size) => { let subjectSlice; subjectSlice = subject; const chunks = []; do { chunks.push(slice(subjectSlice, 0, size)); subjectSlice = slice(subjectSlice, size).trim(); } while (stringWidth(subjectSlice)); return chunks; };