azurite
Version:
An open source Azure Storage API compatible server
34 lines • 1.06 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../utils/constants");
/**
* Async iterator to enumerate all extent IDs.
*
* @export
* @class AllExtentsAsyncIterator
* @implements {AsyncIterator<string[]>}
*/
class AllExtentsAsyncIterator {
constructor(extentMetadata) {
this.extentMetadata = extentMetadata;
this.unit = 1000;
this.done = false;
this.time = new Date();
}
async next() {
if (this.done) {
return { done: true, value: [] };
}
const [extents, nextMarker] = await this.extentMetadata.listExtents(undefined, this.unit, this.marker, this.time, constants_1.DEFAULT_EXTENT_GC_PROTECT_TIME_IN_MS);
this.marker = nextMarker;
if (nextMarker === undefined) {
this.done = true;
}
return {
done: false,
value: extents.map(val => val.id)
};
}
}
exports.default = AllExtentsAsyncIterator;
//# sourceMappingURL=AllExtentsAsyncIterator.js.map
;