UNPKG

@remotion/renderer

Version:

Render Remotion videos using Node.js or Bun

49 lines (48 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleBrowserCrash = void 0; const logger_1 = require("./logger"); const handleBrowserCrash = (instance, logLevel, indent) => { let _instance = instance; const waiters = []; let replacing = false; return { getBrowser: () => _instance, replaceBrowser: async (make, makeNewPages) => { if (replacing) { const waiter = new Promise((resolve, reject) => { waiters.push({ resolve, reject, }); }); return waiter; } try { replacing = true; await _instance .close({ silent: true }) .then(() => { logger_1.Log.info({ indent, logLevel }, 'Killed previous browser and making new one'); }) .catch(() => { // Ignore as browser crashed }); const browser = await make(); _instance = browser; await makeNewPages(); waiters.forEach((w) => w.resolve(browser)); logger_1.Log.info({ indent, logLevel }, 'Made new browser'); return browser; } catch (err) { waiters.forEach((w) => w.reject(err)); throw err; } finally { replacing = false; } }, }; }; exports.handleBrowserCrash = handleBrowserCrash;