* Parse accordingly to RFC 9110 * @see https://www.rfc-editor.org/rfc/rfc9110#field.content-range * @param {string} [range] * @returns {RangeHeader|null}
(range)
| 796 | * @returns {RangeHeader|null} |
| 797 | */ |
| 798 | function parseRangeHeader (range) { |
| 799 | if (range == null || range === '') return { start: 0, end: null, size: null } |
| 800 | if (!range) return null |
| 801 | |
| 802 | const m = rangeHeaderRegex.exec(range) |
| 803 | return m |
| 804 | ? { |
| 805 | start: parseInt(m[1]), |
| 806 | end: m[2] ? parseInt(m[2]) : null, |
| 807 | size: m[3] && m[3] !== '*' ? parseInt(m[3]) : null |
| 808 | } |
| 809 | : null |
| 810 | } |
| 811 | |
| 812 | /** |
| 813 | * @template {import("events").EventEmitter} T |