content-range
Version:
Content-Range header formatter .
39 lines (34 loc) • 1.12 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
/**
* 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;
}
exports.format = format;
exports.parse = parse;
//# sourceMappingURL=content-range.cjs.development.js.map
;