@featurevisor/core
Version:
Core package of Featurevisor for Node.js usage
38 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllocation = getAllocation;
exports.getUpdatedAvailableRangesAfterFilling = getUpdatedAvailableRangesAfterFilling;
function getAllocation(availableRanges, fill) {
const result = [];
let remaining = fill;
let i = 0;
while (remaining > 0 && i < availableRanges.length) {
const range = availableRanges[i];
const [start, end] = range;
const rangeFill = Math.min(remaining, end - start);
result.push([start, start + rangeFill]);
remaining -= rangeFill;
i++;
}
return result;
}
function getUpdatedAvailableRangesAfterFilling(availableRanges, fill) {
if (fill === 0) {
return availableRanges;
}
const result = [];
let remaining = fill;
let i = 0;
while (remaining > 0 && i < availableRanges.length) {
const range = availableRanges[i];
const [start, end] = range;
const rangeFill = Math.min(remaining, end - start);
if (rangeFill < end - start) {
result.push([start + rangeFill, end]);
}
remaining -= rangeFill;
i++;
}
return result;
}
//# sourceMappingURL=allocator.js.map