UNPKG

@vitron/main

Version:

This is a utility package for the main process.

43 lines (39 loc) 1.39 kB
'use strict'; 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