123456789101112131415161718192021222324 |
- import { iterator } from "./iterator";
- export function paginate(octokit, route, parameters, mapFn) {
- if (typeof parameters === "function") {
- mapFn = parameters;
- parameters = undefined;
- }
- return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);
- }
- function gather(octokit, results, iterator, mapFn) {
- return iterator.next().then((result) => {
- if (result.done) {
- return results;
- }
- let earlyExit = false;
- function done() {
- earlyExit = true;
- }
- results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);
- if (earlyExit) {
- return results;
- }
- return gather(octokit, results, iterator, mapFn);
- });
- }
|