UNPKG

conextra

Version:

Conextra for Web Development. Helps create a SPWA (Single-page Progressive Web Application).

57 lines (41 loc) 2.32 kB
'use script'; require('log-report'); var { Worker, isMainThread } = require('node:worker_threads'), path = require('node:path'), configSets = require('config-sets'), conextraConfig = configSets('conextra', { isDebug: false, pathToResourseMap: 'data/resourse_map.json', pathToDataDir: "data" }), webServerConfig = configSets('tiny-https-server'), web_cluster = null, webSocketServer = null; createWebCluster(); if (isMainThread) { createWebSocketServer(); console.log(`Web server started on port ${webServerConfig.port}`); } function createWebCluster() { web_cluster = new Worker(path.join(__dirname, 'web_cluster.js')); if (!isMainThread) { return; } web_cluster.on('message', (message) => { pDebug('Received from WebCluster:', message); }); web_cluster.on('error', (error) => { pError('WebCluster error:', error); }); web_cluster.on('online', () => { pDebug('WebCluster is online'); }); web_cluster.on('listening', (address) => { pDebug('WebCluster is listening on', address); }); web_cluster.on('disconnect', () => { pDebug('WebCluster disconnected'); }); web_cluster.on('exit', (code) => { pDebug(`WebCluster exited with code ${code}`); createWebCluster(); }); } function createWebSocketServer() { webSocketServer = new Worker(path.join(__dirname, 'main_websocket_worker.js')); if (!isMainThread) { return; } webSocketServer.on('message', (message) => { pDebug('Received from WebSocketServer:', message); }); webSocketServer.on('error', (error) => { pError('WebSocketServer error:', error); }); webSocketServer.on('online', () => { pDebug('WebSocketServer is online'); }); webSocketServer.on('listening', (address) => { pDebug('WebSocketServer is listening on', address); }); webSocketServer.on('disconnect', () => { pDebug('WebSocketServer disconnected'); }); webSocketServer.on('exit', (code) => { pDebug(`WebSocketServer exited with code ${code}`); createWebSocketServer(); }); } // Debugging function pDebug(...args) { if (conextraConfig.isDebug) { console.log(`[ DEBUG ] 'conextra' `, ...args); } } function pError(...args) { if (conextraConfig.isDebug) { console.error(`[ ERROR ] 'conextra' `, ...args); } }