@vitron/main
Version:
This is a utility package for the main process.
43 lines (39 loc) • 1.39 kB
JavaScript
;
var node_http = require('node:http');
var process = require('node:process');
var path = require('node:path');
var electron = require('electron');
var _static = require('@routup/static');
var getPortPlease = require('get-port-please');
var routup = require('routup');
async function serve(mainWindow, options) {
if (!electron.app.isPackaged) {
await mainWindow.loadURL(`http://localhost:${options.port || 9000}`);
return;
}
const router = new routup.Router();
let defaultDirectory;
if (process.platform === 'win32') {
defaultDirectory = path.join(process.cwd(), 'app.asar', '.vitron', 'renderer');
} else {
defaultDirectory = '.vitron/renderer';
}
router.use('/', _static.createHandler(options.directory || defaultDirectory));
const server = node_http.createServer(router.createListener());
const stop = async ()=>new Promise((resolve, reject)=>{
server.close((err)=>{
if (err) {
reject(err);
return;
}
resolve();
});
});
mainWindow.on('closed', ()=>stop());
const port = await getPortPlease.getPort();
server.listen(port, async ()=>{
await mainWindow.loadURL(`http://localhost:${port}`);
});
}
exports.serve = serve;
//# sourceMappingURL=index.cjs.map