Skip to content

Commit 6be9a4e

Browse files
fix: recreating keyboardShortcuts interface on file changes. (#1465)
Co-authored-by: Aaron <[email protected]>
1 parent eb0bffb commit 6be9a4e

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

packages/wxt/src/core/create-server.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,13 @@ async function createServerInternal(): Promise<WxtDevServer> {
110110

111111
// Listen for file changes and reload different parts of the extension accordingly
112112
const reloadOnChange = createFileReloader(server);
113-
server.watcher.on('all', reloadOnChange);
114-
keyboardShortcuts.start();
113+
server.watcher.on('all', async (...args) => {
114+
await reloadOnChange(args[0], args[1]);
115+
116+
// Restart keyboard shortcuts after file is changed - for some reason they stop working.
117+
keyboardShortcuts.start();
118+
});
119+
115120
keyboardShortcuts.printHelp({
116121
canReopenBrowser:
117122
!wxt.config.runnerConfig.config.disabled && !!runner.canOpen?.(),

packages/wxt/src/core/keyboard-shortcuts.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@ export function createKeyboardShortcuts(
2626

2727
return {
2828
start() {
29-
if (rl) return;
30-
31-
rl = readline.createInterface({
29+
rl ??= readline.createInterface({
3230
input: process.stdin,
3331
terminal: false, // Don't intercept ctrl+C, ctrl+Z, etc
3432
});
@@ -37,8 +35,7 @@ export function createKeyboardShortcuts(
3735
},
3836

3937
stop() {
40-
rl?.close();
41-
rl = undefined;
38+
rl?.removeListener('line', handleInput);
4239
},
4340

4441
printHelp(flags) {

0 commit comments

Comments
 (0)