Skip to content

Commit

Permalink
Merge pull request #14 from tech-advantage/Electron-forge
Browse files Browse the repository at this point in the history
Electron forge
  • Loading branch information
flo7842 authored Jul 13, 2023
2 parents 49088c0 + dd0d714 commit d99a3f7
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 6 deletions.
20 changes: 20 additions & 0 deletions src/expressServer/routes/viewer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,24 @@ viewerRouter.post('/helpviewer', validate({ body: UrlUtils.urlSchema() }), (req:
);
});

viewerRouter.post('/helpviewer/shutdown', (req: Request, res: Response) => {
const shutDown: boolean = req.body.shutDown;

res.setHeader('Content-Type', 'application/json');

if (res.statusCode == 500) {
Logger.log().error(req, res);
res.send('Internal Server Error');
} else if (res.statusCode == 404) {
message = 'Unable to find the requested resource ! You can try another URL.';
res.status(404).json({ message });
}

ipcRenderer.send('shutdown', shutDown);

res.send(
`Application is shutdown`
);
})

export default viewerRouter;
33 changes: 29 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ import './menu';
import { Logger } from './lib/logger';
import { ConfigElectronViewer } from './utils/config-electron-viewer';
import { PathResolver } from './utils/path-resolver';

declare const MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY: string;
declare const MAIN_WINDOW_WEBPACK_ENTRY: string;
let mainWindow: BrowserWindow;

const createWindow = (): void => {
// Create main window
const mainWindow = new BrowserWindow({
mainWindow = new BrowserWindow({
width: ConfigElectronViewer.getBrowserWindowWidthConfig(),
height: ConfigElectronViewer.getBrowserWindowHeightConfig(),
icon: PathResolver.getAppIcon(),
Expand All @@ -17,7 +19,7 @@ const createWindow = (): void => {
contextIsolation: true,
preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
},
show: false,
show: process.argv[1] == "app" ? false : true,
});
mainWindow.webContents.reloadIgnoringCache();
handleHeaders(mainWindow);
Expand All @@ -36,7 +38,7 @@ const createWindow = (): void => {
})
.catch((err) => Logger.log().error(err));

redirectFromPostRequest(mainWindow);
redirectFromPostRequest(mainWindow);
};

const handleHeaders = (win: any) => {
Expand Down Expand Up @@ -75,14 +77,37 @@ const redirectFromPostRequest = (win: BrowserWindow) => {
})
.catch((err) => Logger.log().error(err));
});
});
});
};

const shutDown = () => {
// Receive request from server
ipcMain.on('shutdown', (e, url) => {
if(url == true){
app.exit(0)
app.quit()
}
});
};

app.whenReady().then(() => {
if (require('electron-squirrel-startup')) app.quit();
// When the app is ready, run the mainWindow
createWindow();
shutDown();

if(process.argv[1] == "app"){
mainWindow.on("close", async e => {
e.preventDefault()
mainWindow.hide();
})
} else {
mainWindow.on("close", async e => {
e.preventDefault()
mainWindow?.close();
})
}

app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
Expand Down
6 changes: 6 additions & 0 deletions src/utils/config-electron-viewer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ export class ConfigElectronViewer {
* @returns {number} browserWindow width
*/
static getBrowserWindowWidthConfig(): number {
if(parseInt(process.argv[2]) !== configViewer.browserWindow.width){
return parseInt(process.argv[2]);
}
return configViewer.browserWindow.width;
}

Expand All @@ -121,6 +124,9 @@ export class ConfigElectronViewer {
* @returns {number} browserWindow height
*/
static getBrowserWindowHeightConfig(): number {
if(parseInt(process.argv[3]) !== configViewer.browserWindow.height){
return parseInt(process.argv[3]);
}
return configViewer.browserWindow.height;
}
}
4 changes: 2 additions & 2 deletions webpack/webpack.viewer-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import WebpackShellPlugin from 'webpack-shell-plugin-next';
import nodeExternals from 'webpack-node-externals';

const config: webpack.Configuration = {
entry: APP_ROOT + '/webpack/webpack.config.ts',
entry: APP_ROOT + '/webpack/webpack.main.config.ts',
mode: 'development',
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
Expand All @@ -32,7 +32,7 @@ const config: webpack.Configuration = {
// Fetch the remote zip viewer
new SaveRemoteFilePlugin([
{
url: 'https://github.com/tech-advantage/edc-help-viewer/releases/download/v3.3.1/edc-help-viewer.3.3.1.zip',
url: 'https://github.com/tech-advantage/edc-help-viewer/releases/download/v3.3.2/edc-help-viewer.3.3.2.zip',
filepath: 'zip/edc-help-viewer.zip',
},
]),
Expand Down

0 comments on commit d99a3f7

Please sign in to comment.