mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-01 00:24:08 +00:00
* add: terminal * added support for multiple terminal sessions and opening terminal from collection's working directory * Use PowerShell as default shell on Windows Replace cmd.exe with powershell.exe for terminal sessions on Windows. Falls back to PWSH environment variable if set (for PowerShell Core). * refactor(ui): improved session list by moving path display to hover for cleaner view * chore: format * refactor: improve terminal code quality and UI consistency - Add terminal icon to 'Open in Terminal' dropdown item in CollectionItem - Remove unused imports and functions (IconPlus, callIpc, canWriteToTerminal) - Fix React key prop placement in SessionList component - Replace deprecated substr with substring in terminal session ID generation - Improve error handling for terminal cleanup on app quit - Simplify terminal cleanup logic in window close handler --------- Co-authored-by: naman-bruno <naman@usebruno.com> Co-authored-by: Sid <siddharth@usebruno.com>
25 lines
832 B
JavaScript
25 lines
832 B
JavaScript
const { ipcRenderer, contextBridge, webUtils, shell } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('ipcRenderer', {
|
|
invoke: (channel, ...args) => ipcRenderer.invoke(channel, ...args),
|
|
send: (channel, ...args) => ipcRenderer.send(channel, ...args),
|
|
on: (channel, handler) => {
|
|
// Deliberately strip event as it includes `sender`
|
|
const subscription = (event, ...args) => {
|
|
// Ensure args is always an array to prevent undefined errors
|
|
const safeArgs = args && args.length ? args : [];
|
|
handler(...safeArgs);
|
|
};
|
|
ipcRenderer.on(channel, subscription);
|
|
|
|
return () => {
|
|
ipcRenderer.removeListener(channel, subscription);
|
|
};
|
|
},
|
|
getFilePath(file) {
|
|
const path = webUtils.getPathForFile(file);
|
|
return path;
|
|
},
|
|
openExternal: (url) => shell.openExternal(url)
|
|
});
|