16 lines
421 B
JavaScript
16 lines
421 B
JavaScript
function parseRange(rangeHeader, totalLength) {
|
|
if (!rangeHeader) return null;
|
|
const m = /bytes=(\d*)-(\d*)/.exec(rangeHeader);
|
|
if (!m) return null;
|
|
|
|
const start = m[1] ? parseInt(m[1], 10) : 0;
|
|
const end = m[2] ? parseInt(m[2], 10) : totalLength - 1;
|
|
|
|
if (isNaN(start) || isNaN(end) || start > end || start >= totalLength) {
|
|
return null;
|
|
}
|
|
|
|
return { start, end };
|
|
}
|
|
|
|
module.exports = { parseRange };
|