(ranges: ByteRange[], data: Uint8Array, start: number, end: number)
| 57 | const isUtf8ContinuationByte = (byte: number) => (byte & 0xc0) === 0x80; |
| 58 | |
| 59 | const addSampleRange = (ranges: ByteRange[], data: Uint8Array, start: number, end: number) => { |
| 60 | const n = data.length; |
| 61 | if (n === 0) return; |
| 62 | let rangeStart = Math.max(0, Math.min(start, n)); |
| 63 | let rangeEnd = Math.max(rangeStart, Math.min(end, n)); |
| 64 | while (rangeStart > 0 && isUtf8ContinuationByte(data[rangeStart])) { |
| 65 | rangeStart--; |
| 66 | } |
| 67 | while (rangeEnd < n && isUtf8ContinuationByte(data[rangeEnd])) { |
| 68 | rangeEnd++; |
| 69 | } |
| 70 | if (rangeStart >= rangeEnd) return; |
| 71 | if (ranges.some(([existingStart, existingEnd]) => rangeStart >= existingStart && rangeEnd <= existingEnd)) return; |
| 72 | ranges.push([rangeStart, rangeEnd]); |
| 73 | }; |
| 74 | |
| 75 | const createSampleRanges = ( |
| 76 | data: Uint8Array, |
no test coverage detected