Sha256: 65b51ae51492be89cdc3a522596ff01032eab8bce090f28e8fbdae91790e3096
Contents?: true
Size: 738 Bytes
Versions: 23
Compression:
Stored size: 738 Bytes
Contents
import slice from 'slice-ansi'; import stringWidth from 'string-width'; /** * @param {string} input * @param {number} size * @returns {Array} */ export default (input, size) => { let subject; subject = input; const chunks = []; // https://regex101.com/r/gY5kZ1/1 const re = new RegExp('(^.{1,' + size + '}(\\s+|$))|(^.{1,' + (size - 1) + '}(\\\\|/|_|\\.|,|;|-))'); do { let chunk; chunk = subject.match(re); if (chunk) { chunk = chunk[0]; subject = slice(subject, stringWidth(chunk)); chunk = chunk.trim(); } else { chunk = slice(subject, 0, size); subject = slice(subject, size); } chunks.push(chunk); } while (stringWidth(subject)); return chunks; };
Version data entries
23 entries across 23 versions & 1 rubygems