distinguish main and worker thread to check if should import electron

This commit is contained in:
geekgeekrun
2024-03-13 01:24:24 +08:00
parent 494702df0d
commit 17ec7f3a65
@@ -10,15 +10,14 @@ import {
} from '../browser-history' } from '../browser-history'
import { getExecutableFileVersion } from '@geekgeekrun/utils/windows-only/file.mjs' import { getExecutableFileVersion } from '@geekgeekrun/utils/windows-only/file.mjs'
import CheckAndLocateExistedChromiumExecutableWorker from './worker/find-and-locate-existed-chromium-executable?nodeWorker&url' import CheckAndLocateExistedChromiumExecutableWorker from './worker/find-and-locate-existed-chromium-executable?nodeWorker&url'
import { type Worker } from 'worker_threads' import { type Worker, isMainThread } from 'node:worker_threads'
const getPuppeteerManagerModule = async () => { const getPuppeteerManagerModule = async () => {
const electron = await import('electron')
let puppeteerManager let puppeteerManager
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
puppeteerManager = await import('@puppeteer/browsers') puppeteerManager = await import('@puppeteer/browsers')
} else { } else if (isMainThread) {
const electron = await import('electron')
puppeteerManager = ( puppeteerManager = (
await import( await import(
'file://' + 'file://' +
@@ -29,6 +28,9 @@ const getPuppeteerManagerModule = async () => {
) )
) )
).puppeteerManager ).puppeteerManager
} else {
// TODO: Run from worker
debugger
} }
return puppeteerManager return puppeteerManager
@@ -141,8 +143,6 @@ export const getAnyAvailablePuppeteerExecutable = async (): Promise<BrowserInfo
} }
export async function findAndLocateUserInstalledChromiumExecutableSync(): Promise<BrowserInfo> { export async function findAndLocateUserInstalledChromiumExecutableSync(): Promise<BrowserInfo> {
const electron = await import('electron')
const exceptChromiumMainVersion = Number(EXPECT_CHROMIUM_BUILD_ID.split('.')[0]) const exceptChromiumMainVersion = Number(EXPECT_CHROMIUM_BUILD_ID.split('.')[0])
// For windows, try to find Edge(chromium) // For windows, try to find Edge(chromium)
if (os.platform() === 'win32') { if (os.platform() === 'win32') {
@@ -172,7 +172,8 @@ export async function findAndLocateUserInstalledChromiumExecutableSync(): Promis
let findChrome: typeof import('find-chrome-bin').findChrome let findChrome: typeof import('find-chrome-bin').findChrome
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
findChrome = (await import('find-chrome-bin')).findChrome findChrome = (await import('find-chrome-bin')).findChrome
} else { } else if (isMainThread) {
const electron = await import('electron')
findChrome = ( findChrome = (
await import( await import(
'file://' + 'file://' +
@@ -183,6 +184,9 @@ export async function findAndLocateUserInstalledChromiumExecutableSync(): Promis
) )
) )
).findChromeBin.findChrome ).findChromeBin.findChrome
} else {
// TODO: Run from worker
debugger
} }
const targetBrowser = await findChrome({ const targetBrowser = await findChrome({
min: exceptChromiumMainVersion min: exceptChromiumMainVersion