UNPKG

@nickbusey/thelounge

Version:

The self-hosted Web IRC client

31 lines (30 loc) 1.08 kB
"use strict"; // Create plain text entries corresponding to areas of the text that match no // existing entries. Returns an empty array if all parts of the text have been Object.defineProperty(exports, "__esModule", { value: true }); // parsed into recognizable entries already. function fill(existingEntries, text) { let position = 0; // Fill inner parts of the text. For example, if text is `foobarbaz` and both // `foo` and `baz` have matched into an entry, this will return a dummy entry // corresponding to `bar`. const result = existingEntries.reduce((acc, textSegment) => { if (textSegment.start > position) { acc.push({ start: position, end: textSegment.start, }); } position = textSegment.end; return acc; }, []); // Complete the unmatched end of the text with a dummy entry if (position < text.length) { result.push({ start: position, end: text.length, }); } return result; } exports.default = fill;