content-range
Version:
Content-Range header formatter .
34 lines (31 loc) • 1.01 kB
JavaScript
/**
* Format Content-Range header.
*/
function format(input) {
var size = input.size != null ? input.size : "*";
var range = input.start == null && input.end == null ? "*" : input.start + "-" + input.end;
if (size === "*" && range === "*") return null;
if (range !== "*" && (input.start == null || input.end == null)) return null;
return input.unit + " " + range + "/" + size;
}
/**
* Parse Content-Range header.
*/
function parse(input) {
var matches = input.match(/^(\w+) ((\d+)-(\d+)|\*)\/(\d+|\*)$/);
if (!matches) return null;
var unit = matches[1],
start = matches[3],
end = matches[4],
size = matches[5];
var range = {
unit: unit,
start: start != null ? Number(start) : null,
end: end != null ? Number(end) : null,
size: size === "*" ? null : Number(size)
};
if (range.start === null && range.end === null && range.size === null) return null;
return range;
}
export { format, parse };
//# sourceMappingURL=content-range.esm.js.map