Skip to content

Commit b5ea72e

Browse files
authored
fix: Use obug for debug logs in runner (#2281)
1 parent 57e3748 commit b5ea72e

8 files changed

Lines changed: 35 additions & 49 deletions

File tree

bun.lock

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cspell.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ words:
7878
- Noto
7979
- ntvs
8080
- nypm
81+
- obug
8182
- ohash
8283
- oklab
8384
- oxlint

packages/runner/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,8 @@
4646
},
4747
"files": [
4848
"dist"
49-
]
49+
],
50+
"dependencies": {
51+
"obug": "^2.1.1"
52+
}
5053
}

packages/runner/src/bidi.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { openWebSocket } from './web-socket';
2-
import { debug } from './debug';
2+
import { runnerDebug } from './debug';
33

4-
const debugBidi = debug.scoped('bidi');
4+
const debug = runnerDebug.extend('bidi');
55

66
export interface BidiConnection extends Disposable {
77
send<T>(method: string, params: any, timeout?: number): Promise<T>;
@@ -12,18 +12,18 @@ export async function createBidiConnection(
1212
baseUrl: string,
1313
): Promise<BidiConnection> {
1414
const url = new URL('/session', baseUrl);
15-
debugBidi('Connecting to BiDi server @', url.href);
15+
debug('Connecting to BiDi server @', url.href);
1616

1717
const webSocket = await openWebSocket(url.href);
18-
debugBidi('Connected');
18+
debug('Connected');
1919

2020
let requestId = 0;
2121

2222
return {
2323
send(method, params, timeout = 10e3) {
2424
const id = ++requestId;
2525
const command = { id, method, params };
26-
debugBidi('Sending command:', command);
26+
debug('Sending command:', command);
2727

2828
return new Promise((resolve, reject) => {
2929
const cleanup = () => {
@@ -43,7 +43,7 @@ export async function createBidiConnection(
4343
const onMessage = (event: MessageEvent) => {
4444
const data = JSON.parse(event.data);
4545
if (data.id === id) {
46-
debugBidi('Received response:', data);
46+
debug('Received response:', data);
4747
cleanup();
4848
if (data.type === 'success') resolve(data.result);
4949
else reject(Error(data.message, { cause: data }));
@@ -62,14 +62,14 @@ export async function createBidiConnection(
6262
},
6363

6464
close() {
65-
debugBidi('Closing connection...');
65+
debug('Closing connection...');
6666
webSocket.close();
67-
debugBidi('Closed connection');
67+
debug('Closed connection');
6868
},
6969
[Symbol.dispose]() {
70-
debugBidi('Disposing connection...');
70+
debug('Disposing connection...');
7171
webSocket.close();
72-
debugBidi('Disposed connection');
72+
debug('Disposed connection');
7373
},
7474
};
7575
}

packages/runner/src/cdp.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { ChildProcess } from 'node:child_process';
22
import type { Readable, Writable } from 'node:stream';
3-
import { debug } from './debug';
3+
import { runnerDebug } from './debug';
44

5-
const debugCdp = debug.scoped('cdp');
5+
const debug = runnerDebug.extend('cdp');
66

77
export interface CDPConnection extends Disposable {
88
send<T>(method: string, params: any, timeout?: number): Promise<T>;
@@ -21,7 +21,7 @@ export function createCdpConnection(
2121
send(method, params, timeout = 10e3) {
2222
const id = ++requestId;
2323
const command = { id, method, params };
24-
debugCdp('Sending command:', command);
24+
debug('Sending command:', command);
2525

2626
return new Promise((resolve, reject) => {
2727
const timer = setTimeout(() => {
@@ -35,7 +35,7 @@ export function createCdpConnection(
3535

3636
if (res.id !== id) return;
3737

38-
debugCdp('Received response:', res);
38+
debug('Received response:', res);
3939
clearTimeout(timer);
4040
outputStream.removeListener('data', onData);
4141

packages/runner/src/debug.ts

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,3 @@
1-
export interface Debug {
2-
(...args: any[]): void;
3-
scoped: (scope: string) => Debug;
4-
}
1+
import { createDebug } from 'obug';
52

6-
function createDebug(scopes: string[]): Debug {
7-
const debug = (...args: any[]) => {
8-
const scope = scopes.join(':');
9-
if (
10-
process.env.DEBUG === '1' ||
11-
process.env.DEBUG === 'true' ||
12-
scope.startsWith(process.env.DEBUG ?? '@NOT')
13-
) {
14-
const params = scope ? [`\x1b[31m${scope}\x1b[0m`, ...args] : args;
15-
console.log(...params);
16-
}
17-
};
18-
19-
debug.scoped = (scope: string) => createDebug([...scopes, scope]);
20-
21-
return debug;
22-
}
23-
24-
export const debug = createDebug(['@wxt-dev/runner']);
3+
export const runnerDebug = createDebug('wxt:runner', { color: 31 });

packages/runner/src/options.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {
66
} from './browser-paths';
77
import { resolve, join } from 'node:path';
88
import { homedir, tmpdir } from 'node:os';
9-
import { debug } from './debug';
9+
import { runnerDebug } from './debug';
1010
import { mkdtemp, open } from 'node:fs/promises';
1111
import { styleText } from 'node:util';
1212

13-
const debugOptions = debug.scoped('options');
13+
const debug = runnerDebug.extend('options');
1414

1515
export type UnknownTarget = string & {};
1616
export type Target = KnownTarget | UnknownTarget;
@@ -79,7 +79,7 @@ export type ResolvedRunOptions = {
7979
export async function resolveRunOptions(
8080
options: RunOptions | undefined,
8181
): Promise<ResolvedRunOptions> {
82-
debugOptions('User options:', options);
82+
debug('User options:', options);
8383

8484
const target = options?.target || 'chrome';
8585

@@ -126,7 +126,7 @@ export async function resolveRunOptions(
126126
firefoxRemoteDebuggingPort,
127127
target,
128128
};
129-
debugOptions('Resolved options:', resolved);
129+
debug('Resolved options:', resolved);
130130
return resolved;
131131
}
132132

packages/runner/src/run.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { debug } from './debug';
1+
import { runnerDebug } from './debug';
22
import {
33
resolveRunOptions,
44
type ResolvedRunOptions,
@@ -8,8 +8,8 @@ import { spawn } from 'node:child_process';
88
import { installChromium, installFirefox } from './install';
99
import { promiseWithResolvers } from './promises';
1010

11-
const debugFirefox = debug.scoped('firefox');
12-
const debugChrome = debug.scoped('chrome');
11+
const debugFirefox = runnerDebug.extend('firefox');
12+
const debugChrome = runnerDebug.extend('chrome');
1313

1414
export interface Runner {
1515
stop(): void;
@@ -44,7 +44,7 @@ async function runFirefox(options: ResolvedRunOptions): Promise<Runner> {
4444
shell: true,
4545
},
4646
);
47-
const debugFirefoxStderr = debugFirefox.scoped('stderr');
47+
const debugFirefoxStderr = debugFirefox.extend('stderr');
4848
browserProcess.stderr.on('data', (data: string) => {
4949
const message = data.toString().trim();
5050
debugFirefoxStderr(message);
@@ -54,7 +54,7 @@ async function runFirefox(options: ResolvedRunOptions): Promise<Runner> {
5454
urlRes.resolve(message.slice(28));
5555
}
5656
});
57-
const debugFirefoxStdout = debugFirefox.scoped('stdout');
57+
const debugFirefoxStdout = debugFirefox.extend('stdout');
5858
browserProcess.stdout.on('data', (data: string) => {
5959
const message = data.toString().trim();
6060
debugFirefoxStdout(message);
@@ -85,7 +85,7 @@ async function runChromium(options: ResolvedRunOptions): Promise<Runner> {
8585
opened.reject(Error('Timed out after 10s waiting for browser to open.'));
8686
}, 10e3);
8787

88-
const debugChromeStderr = debugChrome.scoped('stderr');
88+
const debugChromeStderr = debugChrome.extend('stderr');
8989
browserProcess.stderr!.on('data', (data: string) => {
9090
const message = data.toString().trim();
9191
debugChromeStderr(message);
@@ -96,7 +96,7 @@ async function runChromium(options: ResolvedRunOptions): Promise<Runner> {
9696
opened.resolve();
9797
}
9898
});
99-
const debugChromeStdout = debugChrome.scoped('stdout');
99+
const debugChromeStdout = debugChrome.extend('stdout');
100100
browserProcess.stdout!.on('data', (data: string) => {
101101
const message = data.toString().trim();
102102
debugChromeStdout(message);

0 commit comments

Comments
 (0)