Sha256: 3ed2c8c950217078cf1f71c4411131d28763061eaafca9350b30865b25807d99
Contents?: true
Size: 1.05 KB
Versions: 35
Compression:
Stored size: 1.05 KB
Contents
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * GraphemerIterator * * Takes a string and a "BreakHandler" method during initialisation * and creates an iterable object that returns individual graphemes. * * @param str {string} * @return GraphemerIterator */ class GraphemerIterator { constructor(str, nextBreak) { this._index = 0; this._str = str; this._nextBreak = nextBreak; } [Symbol.iterator]() { return this; } next() { let brk; if ((brk = this._nextBreak(this._str, this._index)) < this._str.length) { const value = this._str.slice(this._index, brk); this._index = brk; return { value: value, done: false }; } if (this._index < this._str.length) { const value = this._str.slice(this._index); this._index = this._str.length; return { value: value, done: false }; } return { value: undefined, done: true }; } } exports.default = GraphemerIterator;
Version data entries
35 entries across 35 versions & 2 rubygems