UNPKG

@vitron/main

Version:

This is a utility package for the main process.

41 lines (38 loc) 1.31 kB
import { createServer } from 'node:http'; import process from 'node:process'; import path from 'node:path'; import { app } from 'electron'; import { createHandler } from '@routup/static'; import { getPort } from 'get-port-please'; import { Router } from 'routup'; async function serve(mainWindow, options) { if (!app.isPackaged) { await mainWindow.loadURL(`http://localhost:${options.port || 9000}`); return; } const router = new Router(); let defaultDirectory; if (process.platform === 'win32') { defaultDirectory = path.join(process.cwd(), 'app.asar', '.vitron', 'renderer'); } else { defaultDirectory = '.vitron/renderer'; } router.use('/', createHandler(options.directory || defaultDirectory)); const server = 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 getPort(); server.listen(port, async ()=>{ await mainWindow.loadURL(`http://localhost:${port}`); }); } export { serve }; //# sourceMappingURL=index.mjs.map