UNPKG

ctan

Version:

CTAN (Comprehensive TeX Archive Network) API client for Node.js

59 lines (58 loc) 2.6 kB
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"); } }