UNPKG

node-web-mvc

Version:
34 lines (33 loc) 1.16 kB
"use strict"; /** * @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;