el-beeswarm
Version:
<div style="display: flex; padding: 1rem; flex-direction: column; align-items: center; justify-content: center; height: 100vh; text-align: center; display: flex;
30 lines (23 loc) • 709 B
Flow
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;
};