@cityssm/puppeteer-launch
Version:
Launch Puppeteer, falling back to system browsers when the cached ones aren't working or aren't available.
38 lines (37 loc) • 1.22 kB
JavaScript
import { chromeWebBrowserTypes, getInstalledWebBrowsers } from '@cityssm/web-browser-info';
let browsersLoaded = false;
let chromeBrowsers = [];
let firefoxBrowsers = [];
async function loadUserBrowsers() {
if (!browsersLoaded) {
/*
* Load Chrome first
*/
const fallbackChromeBrowsers = await getInstalledWebBrowsers(chromeWebBrowserTypes, 110);
chromeBrowsers = fallbackChromeBrowsers;
/*
* Load Firefox
*/
const fallbackFirefoxBrowsers = await getInstalledWebBrowsers('firefox');
firefoxBrowsers = fallbackFirefoxBrowsers;
browsersLoaded = true;
}
}
/**
* Gets the path to the user's Chrome browser.
* @returns The path to the user's Chrome browser, or undefined if not found.
*/
export async function getUserChromePath() {
await loadUserBrowsers();
const chromePath = chromeBrowsers[0]?.command;
return chromePath;
}
/**
* Gets the path to the user's Firefox browser.
* @returns The path to the user's Firefox browser, or undefined if not found.
*/
export async function getUserFirefoxPath() {
await loadUserBrowsers();
const firefoxPath = firefoxBrowsers[0]?.command;
return firefoxPath;
}