@remotion/renderer
Version:
Render Remotion videos using Node.js or Bun
51 lines (50 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.cycleBrowserTabs = void 0;
const logger_1 = require("./logger");
const cycleBrowserTabs = ({ puppeteerInstance, concurrency, logLevel, indent, }) => {
if (concurrency <= 1) {
return {
stopCycling: () => undefined,
};
}
let interval = null;
let i = 0;
let stopped = false;
const set = () => {
interval = setTimeout(() => {
puppeteerInstance
.getBrowser()
.pages()
.then((pages) => {
if (pages.length === 0) {
return;
}
const currentPage = pages[i % pages.length];
i++;
if (!(currentPage === null || currentPage === void 0 ? void 0 : currentPage.closed) &&
!stopped &&
(currentPage === null || currentPage === void 0 ? void 0 : currentPage.url()) !== 'about:blank') {
return currentPage.bringToFront();
}
})
.catch((err) => logger_1.Log.error({ indent, logLevel }, err))
.finally(() => {
if (!stopped) {
set();
}
});
}, 200);
};
set();
return {
stopCycling: () => {
if (!interval) {
return;
}
stopped = true;
return clearTimeout(interval);
},
};
};
exports.cycleBrowserTabs = cycleBrowserTabs;