I'm trying to open a app loader like window that will open first upon running the app just to cover some async scripts running and upon completion, the loader window will close and open the main window, below is my attempt
let mainWindow;
let win;
let loaderwin;
// CREATE WINDOW
const createMainWindow = async () => {
win = new BrowserWindow({
title: app.name,
show: false,
width: 1024,
height: 768,
});
if( isdebug ) win.webContents.openDevTools();
win.on('ready-to-show', () => {
win.maximize();
win.show();
});
win.on('closed', () => {
mainWindow = undefined;
});
await win.loadFile(path.join(__dirname, 'main-window.html'));
return win;
}
const createLoaderWindow = async () => {
loaderwin = new BrowserWindow({
title: app.name,
show: false,
width: 600,
height: 300,
frame : false,
webPreferences : {
devTools : false
}
});
loaderwin.on('ready-to-show', () => {
loaderwin.show();
});
loaderwin.on('closed', () => {
// on close open the mainwindow
mainWindow = createMainWindow();
});
await loaderwin.loadFile(path.join(__dirname, 'loader.html'));
return loaderwin;
}
// Prevent multiple instances of the app
if (!app.requestSingleInstanceLock()) {
app.quit();
}
app.on('second-instance', () => {
if (mainWindow) {
if (mainWindow.isMinimized()) {
mainWindow.restore();
}
mainWindow.show();
}
});
app.on('window-all-closed', () => {
if (!is.macos) {
app.quit();
}
});
app.on('activate', async () => {
if (!mainWindow) {
mainWindow = await createLoaderWindow();
}
});
(async () => {
await app.whenReady();
Menu.setApplicationMenu(null);
mainWindow = createLoaderWindow();
await syncfunct();
( require('./server.js'))();
// done, close loader window
loaderwin.close();
})();
but it gives me this error
Error: ERR_FAILED (-2) loading 'file:///D:\web-development\github\tordyak-app\loader.html' at rejectAndCleanup (electron/js2c/browser_init.js:217:1457) at Object.stopLoadingListener (electron/js2c/browser_init.js:217:1832) at Object.emit (events.js:315:20) { errno: -2, code: 'ERR_FAILED', url: 'file:///D:\web-development\github\tordyak-app\loader.html' }
any help, ideas, suggestions is greatly appreciated. Thank you in advance.