bruno/main/index.js
2022-03-09 01:15:26 +05:30

49 lines
1.3 KiB
JavaScript

// Native
const { join } = require('path');
const { format } = require('url');
const axios = require('axios');
// Packages
const { BrowserWindow, app, ipcMain } = require('electron');
const isDev = require('electron-is-dev');
const prepareNext = require('electron-next');
// Prepare the renderer once the app is ready
app.on('ready', async () => {
await prepareNext('./renderer');
const mainWindow = new BrowserWindow({
width: 1280,
height: 768,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
preload: join(__dirname, 'preload.js'),
},
});
const url = isDev
? 'http://localhost:8000'
: format({
pathname: join(__dirname, '../renderer/out/index.html'),
protocol: 'file:',
slashes: true,
})
mainWindow.loadURL(url);
});
// Quit the app once all windows are closed
app.on('window-all-closed', app.quit);
// listen the channel `message` and resend the received message to the renderer process
ipcMain.on('message', (event, message) => {
event.sender.send('message', message);
});
// handler for all request related to a user's grafnode account
ipcMain.handle('grafnode-account-request', async (_, request) => {
const result = await axios(request)
return { data: result.data, status: result.status }
})