@netlify/content-engine
Version:
29 lines • 1.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.waitUntilAllJobsComplete = void 0;
exports.waitJobsByRequest = waitJobsByRequest;
const redux_1 = require("../redux");
const manager_1 = require("./jobs/manager");
async function waitJobsV1() {
return new Promise((resolve) => {
const onEndJob = () => {
if (redux_1.store.getState().jobs.active.length === 0) {
resolve();
redux_1.emitter.off(`END_JOB`, onEndJob);
}
};
redux_1.emitter.on(`END_JOB`, onEndJob);
onEndJob();
});
}
const waitUntilAllJobsComplete = () => Promise.all([waitJobsV1(), (0, manager_1.waitUntilAllJobsComplete)()]).then();
exports.waitUntilAllJobsComplete = waitUntilAllJobsComplete;
async function waitJobsByRequest(requestId) {
const jobs = redux_1.store.getState().jobsV2;
const jobDigests = new Set([
...(jobs.jobsByRequest.get(requestId) ?? []),
...(jobs.jobsByRequest.get(``) ?? []), // wait for jobs without requestId just in case
]);
await Promise.all([waitJobsV1(), (0, manager_1.waitJobs)(jobDigests)]);
}
//# sourceMappingURL=wait-until-jobs-complete.js.map
;