feat: pass PLAYWRITER_AUTO_ENABLE when CLI starts relay server

This commit is contained in:
Tommy D. Rossi
2026-01-24 13:01:57 +01:00
parent f391eda881
commit c2766cb386
2 changed files with 11 additions and 10 deletions
+6 -4
View File
@@ -4,6 +4,8 @@ import { cac } from '@xmorse/cac'
import { VERSION, LOG_FILE_PATH } from './utils.js' import { VERSION, LOG_FILE_PATH } from './utils.js'
import { ensureRelayServer, RELAY_PORT } from './relay-client.js' import { ensureRelayServer, RELAY_PORT } from './relay-client.js'
const cliRelayEnv = { PLAYWRITER_AUTO_ENABLE: '1' }
const cli = cac('playwriter') const cli = cac('playwriter')
cli cli
@@ -54,7 +56,7 @@ async function executeCode(options: {
// Ensure relay server is running (only for local) // Ensure relay server is running (only for local)
if (!host && !process.env.PLAYWRITER_HOST) { if (!host && !process.env.PLAYWRITER_HOST) {
await ensureRelayServer({ logger: console }) await ensureRelayServer({ logger: console, env: cliRelayEnv })
} }
// Session is required // Session is required
@@ -122,7 +124,7 @@ cli
const serverUrl = await getServerUrl(options.host) const serverUrl = await getServerUrl(options.host)
if (!options.host && !process.env.PLAYWRITER_HOST) { if (!options.host && !process.env.PLAYWRITER_HOST) {
await ensureRelayServer({ logger: console }) await ensureRelayServer({ logger: console, env: cliRelayEnv })
} }
try { try {
@@ -142,7 +144,7 @@ cli
const serverUrl = await getServerUrl(options.host) const serverUrl = await getServerUrl(options.host)
if (!options.host && !process.env.PLAYWRITER_HOST) { if (!options.host && !process.env.PLAYWRITER_HOST) {
await ensureRelayServer({ logger: console }) await ensureRelayServer({ logger: console, env: cliRelayEnv })
} }
try { try {
@@ -186,7 +188,7 @@ cli
const serverUrl = await getServerUrl(options.host) const serverUrl = await getServerUrl(options.host)
if (!options.host && !process.env.PLAYWRITER_HOST) { if (!options.host && !process.env.PLAYWRITER_HOST) {
await ensureRelayServer({ logger: console }) await ensureRelayServer({ logger: console, env: cliRelayEnv })
} }
try { try {
+5 -6
View File
@@ -58,12 +58,11 @@ function compareVersions(v1: string, v2: string): number {
} }
export interface EnsureRelayServerOptions { 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 */ /** If true, will kill and restart server on version mismatch. Default: true */
restartOnVersionMismatch?: boolean restartOnVersionMismatch?: boolean
/** Pass additional environment variables to the relay server process */
env?: Record<string, string>
} }
/** /**
@@ -71,7 +70,7 @@ export interface EnsureRelayServerOptions {
* Optionally restarts on version mismatch. * Optionally restarts on version mismatch.
*/ */
export async function ensureRelayServer(options: EnsureRelayServerOptions = {}): Promise<void> { export async function ensureRelayServer(options: EnsureRelayServerOptions = {}): Promise<void> {
const { logger, restartOnVersionMismatch = true } = options const { logger, restartOnVersionMismatch = true, env: additionalEnv } = options
const serverVersion = await getRelayServerVersion(RELAY_PORT) const serverVersion = await getRelayServerVersion(RELAY_PORT)
if (serverVersion === VERSION) { if (serverVersion === VERSION) {
@@ -104,7 +103,7 @@ export async function ensureRelayServer(options: EnsureRelayServerOptions = {}):
const serverProcess = spawn(dev ? 'tsx' : process.execPath, [scriptPath], { const serverProcess = spawn(dev ? 'tsx' : process.execPath, [scriptPath], {
detached: true, detached: true,
stdio: 'ignore', stdio: 'ignore',
env: { ...process.env }, env: { ...process.env, ...additionalEnv },
}) })
serverProcess.unref() serverProcess.unref()