node-web-mvc
Version:
node spring mvc
34 lines (33 loc) • 1.16 kB
JavaScript
;
/**
* @module ResourceRegion
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const HttpRange_1 = __importDefault(require("../http/HttpRange"));
class ResourceRegion {
// 结束位置
get end() {
const end = this.position + this.count - 1;
return Math.min(end, this.resource.contentLength - 1);
}
constructor(resource, position, count) {
this.resource = resource;
this.position = position;
this.count = count;
}
static getRangeRegions(request, resource) {
return this.toResourceRegions(HttpRange_1.default.getRanges(request), resource);
}
static toResourceRegions(ranges, resource) {
return ranges.map((range) => {
const start = range.start;
const end = range.end === -1 ? resource.contentLength - 1 : range.end;
const count = end - start + 1;
return new ResourceRegion(resource, range.start, count);
});
}
}
exports.default = ResourceRegion;