github-pages-deploy-action/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js

25 lines
795 B
JavaScript
Raw Normal View History

2020-03-02 21:16:42 +08:00
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) {
2020-07-05 03:43:39 +08:00
return iterator.next().then((result) => {
2020-03-02 21:16:42 +08:00
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);
});
}