diff --git a/playwriter/src/cli.ts b/playwriter/src/cli.ts index c6dc2e4..acf9fcd 100644 --- a/playwriter/src/cli.ts +++ b/playwriter/src/cli.ts @@ -4,6 +4,8 @@ import { cac } from '@xmorse/cac' import { VERSION, LOG_FILE_PATH } from './utils.js' import { ensureRelayServer, RELAY_PORT } from './relay-client.js' +const cliRelayEnv = { PLAYWRITER_AUTO_ENABLE: '1' } + const cli = cac('playwriter') cli @@ -54,7 +56,7 @@ async function executeCode(options: { // Ensure relay server is running (only for local) if (!host && !process.env.PLAYWRITER_HOST) { - await ensureRelayServer({ logger: console }) + await ensureRelayServer({ logger: console, env: cliRelayEnv }) } // Session is required @@ -122,7 +124,7 @@ cli const serverUrl = await getServerUrl(options.host) if (!options.host && !process.env.PLAYWRITER_HOST) { - await ensureRelayServer({ logger: console }) + await ensureRelayServer({ logger: console, env: cliRelayEnv }) } try { @@ -142,7 +144,7 @@ cli const serverUrl = await getServerUrl(options.host) if (!options.host && !process.env.PLAYWRITER_HOST) { - await ensureRelayServer({ logger: console }) + await ensureRelayServer({ logger: console, env: cliRelayEnv }) } try { @@ -186,7 +188,7 @@ cli const serverUrl = await getServerUrl(options.host) if (!options.host && !process.env.PLAYWRITER_HOST) { - await ensureRelayServer({ logger: console }) + await ensureRelayServer({ logger: console, env: cliRelayEnv }) } try { diff --git a/playwriter/src/relay-client.ts b/playwriter/src/relay-client.ts index c345ece..4df310f 100644 --- a/playwriter/src/relay-client.ts +++ b/playwriter/src/relay-client.ts @@ -58,12 +58,11 @@ function compareVersions(v1: string, v2: string): number { } export interface EnsureRelayServerOptions { - /** Optional logger for status messages */ - logger?: { - log: (...args: any[]) => void - } + logger?: { log: (...args: any[]) => void } /** If true, will kill and restart server on version mismatch. Default: true */ restartOnVersionMismatch?: boolean + /** Pass additional environment variables to the relay server process */ + env?: Record } /** @@ -71,7 +70,7 @@ export interface EnsureRelayServerOptions { * Optionally restarts on version mismatch. */ export async function ensureRelayServer(options: EnsureRelayServerOptions = {}): Promise { - const { logger, restartOnVersionMismatch = true } = options + const { logger, restartOnVersionMismatch = true, env: additionalEnv } = options const serverVersion = await getRelayServerVersion(RELAY_PORT) if (serverVersion === VERSION) { @@ -104,7 +103,7 @@ export async function ensureRelayServer(options: EnsureRelayServerOptions = {}): const serverProcess = spawn(dev ? 'tsx' : process.execPath, [scriptPath], { detached: true, stdio: 'ignore', - env: { ...process.env }, + env: { ...process.env, ...additionalEnv }, }) serverProcess.unref()