Files
projects/Dockers/playwright-node-api/browser.js
T
Bram c8f41768f7
Build and Push Docker Images / build-and-push (push) Successful in 3m49s
basic playwright api
2025-11-20 14:46:07 +01:00

52 lines
1.0 KiB
JavaScript

const { chromium } = require('playwright');
let browser = null;
let browserLaunchPromise = null;
async function getBrowser() {
if (browser && browser.isConnected()) {
return browser;
}
if (browserLaunchPromise) {
return browserLaunchPromise;
}
browserLaunchPromise = chromium.launch({
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-accelerated-2d-canvas',
'--disable-gpu',
],
});
try {
browser = await browserLaunchPromise;
browserLaunchPromise = null;
return browser;
} catch (error) {
browserLaunchPromise = null;
throw error;
}
}
async function closeBrowser() {
if (browser) {
await browser.close();
browser = null;
}
}
function isBrowserConnected() {
return browser && browser.isConnected();
}
module.exports = {
getBrowser,
closeBrowser,
isBrowserConnected,
};