UNPKG

@remotion/renderer

Version:

Render Remotion videos using Node.js or Bun

51 lines (50 loc) 1.58 kB
"use strict"; 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;