From eacbc7799f1f2e78a891fec7f607654138801cdf Mon Sep 17 00:00:00 2001 From: lohit Date: Wed, 9 Jul 2025 17:33:27 +0530 Subject: [PATCH] fix: add rsbuild `watchFiles` config for bruno-app `src/providers/*` path and `forceRefreshWatcher` option for collection reopening (#4766) * add rsbuild watchFiles config for src/providers and forceRefreshWatcher option for collection reopening * updated paths --- packages/bruno-app/rsbuild.config.mjs | 15 +++++++++++++++ packages/bruno-electron/src/app/collections.js | 7 ++++++- packages/bruno-electron/src/ipc/preferences.js | 3 ++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/bruno-app/rsbuild.config.mjs b/packages/bruno-app/rsbuild.config.mjs index f21f80666..b9b84129c 100644 --- a/packages/bruno-app/rsbuild.config.mjs +++ b/packages/bruno-app/rsbuild.config.mjs @@ -18,6 +18,21 @@ export default defineConfig({ } }) ], + dev: { + watchFiles: { + paths: [ + 'src/providers/**', + 'src/utils/**', + 'src/hooks/**', + 'src/themes/**', + 'src/selectors/**' + ], + options: { + usePolling: false, + interval: 1000, + }, + }, + }, source: { tsconfigPath: './jsconfig.json', // Specifies the path to the JavaScript/TypeScript configuration file, exclude: [ diff --git a/packages/bruno-electron/src/app/collections.js b/packages/bruno-electron/src/app/collections.js index a6b7a178c..091580176 100644 --- a/packages/bruno-electron/src/app/collections.js +++ b/packages/bruno-electron/src/app/collections.js @@ -56,7 +56,12 @@ const openCollectionDialog = async (win, watcher) => { }; const openCollection = async (win, watcher, collectionPath, options = {}) => { - if (!watcher.hasWatcher(collectionPath)) { + if (!watcher.hasWatcher(collectionPath) || options.forceRefreshWatcher) { + if (options.forceRefreshWatcher) { + // the watcher is being refreshed, so we remove the existing watcher + // when the collection is opened again in the gui, a new watcher will be created via the `renderer:mount-collection` handler + watcher.removeWatcher(collectionPath); + } try { let brunoConfig = await getCollectionConfigFile(collectionPath); const uid = generateUidBasedOnHash(collectionPath); diff --git a/packages/bruno-electron/src/ipc/preferences.js b/packages/bruno-electron/src/ipc/preferences.js index 4c9c34d99..26de4c913 100644 --- a/packages/bruno-electron/src/ipc/preferences.js +++ b/packages/bruno-electron/src/ipc/preferences.js @@ -28,7 +28,8 @@ const registerPreferencesIpc = (mainWindow, watcher, lastOpenedCollections) => { for (let collectionPath of lastOpened) { if (isDirectory(collectionPath)) { await openCollection(mainWindow, watcher, collectionPath, { - dontSendDisplayErrors: true + dontSendDisplayErrors: true, + forceRefreshWatcher: true }); } }