ctan
Version:
CTAN (Comprehensive TeX Archive Network) API client for Node.js
59 lines (58 loc) • 2.6 kB
JavaScript
var _SearchPaginator_response, _SearchPaginator_client, _SearchPaginator_parameters, _SearchPaginator_config;
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
export class SearchPaginator {
constructor(response, client, params, config) {
_SearchPaginator_response.set(this, void 0);
_SearchPaginator_client.set(this, void 0);
_SearchPaginator_parameters.set(this, void 0);
_SearchPaginator_config.set(this, void 0);
__classPrivateFieldSet(this, _SearchPaginator_response, response, "f");
__classPrivateFieldSet(this, _SearchPaginator_client, client, "f");
__classPrivateFieldSet(this, _SearchPaginator_parameters, {
offset: response.offset,
max: response.max,
...params,
}, "f");
__classPrivateFieldSet(this, _SearchPaginator_config, config, "f");
}
get numberOfHits() {
return __classPrivateFieldGet(this, _SearchPaginator_response, "f").numberOfHits;
}
get offset() {
return __classPrivateFieldGet(this, _SearchPaginator_response, "f").offset;
}
get max() {
return __classPrivateFieldGet(this, _SearchPaginator_response, "f").max;
}
get phrase() {
return __classPrivateFieldGet(this, _SearchPaginator_parameters, "f").phrase;
}
get hits() {
return __classPrivateFieldGet(this, _SearchPaginator_response, "f").hits;
}
done() {
return this.numberOfHits <= this.offset + this.max;
}
async next() {
const nextpage = await __classPrivateFieldGet(this, _SearchPaginator_client, "f").search({
...__classPrivateFieldGet(this, _SearchPaginator_parameters, "f"),
offset: this.offset + this.max,
}, __classPrivateFieldGet(this, _SearchPaginator_config, "f"));
__classPrivateFieldSet(this, _SearchPaginator_response, __classPrivateFieldGet(nextpage, _SearchPaginator_response, "f"), "f");
__classPrivateFieldGet(this, _SearchPaginator_parameters, "f").offset += this.max;
return this;
}
async *[(_SearchPaginator_response = new WeakMap(), _SearchPaginator_client = new WeakMap(), _SearchPaginator_parameters = new WeakMap(), _SearchPaginator_config = new WeakMap(), Symbol.asyncIterator)]() {
yield* this.hits;
while (!this.done()) {
await this.next();
yield* this.hits;
}
}
get [Symbol.toStringTag]() {
return 'SearchPaginator';
}
toJSON() {
return __classPrivateFieldGet(this, _SearchPaginator_response, "f");
}
}