UNPKG

@planet-a/affinity-node

Version:
22 lines (21 loc) 770 B
// TODO(@joscha): this is a mess, simplify types here whilst preserving the required paged request/response types export const createSearchIteratorFn = (searchFn, key) => { async function* searchIterator(params) { let page_token = undefined; while (true) { const response = await searchFn( // TODO(@joscha): remove cast (page_token ? { ...params, page_token } : params)); // TODO(@joscha): remove cast yield response[key]; if (response.next_page_token === null) { // no more pages to fetch return; } else { page_token = response.next_page_token; } } } return searchIterator; };