UNPKG

ddnsman

Version:
42 lines (41 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const node_ipc_1 = require("node-ipc"); const IpMonitor_1 = require("./IpMonitor"); const util_1 = require("./util"); const Worker_1 = require("./Worker"); process.on('uncaughtException', (err) => { util_1.logger.error(err.message); }); process.on('unhandledRejection', (err) => { util_1.logger.error(err.message); }); const worker = new Worker_1.Worker(); const ipMonitor = new IpMonitor_1.IpMonitor(); ipMonitor.on('change', (ip) => { worker.sync(ip); }); const ipc = new node_ipc_1.IPC(); ipc.config.appspace = 'ddns.'; ipc.config.id = 'worker'; ipc.config.silent = true; ipc.serve(() => { ipc.server.on('message', (data, socket) => { try { const res = worker.onMessage(data); ipc.server.emit(socket, 'message', res); } catch (err) { ipc.server.emit(socket, 'message', err.message); } finally { if (worker.getActiveDomainCount() > 0) { ipMonitor.start(); } else { ipMonitor.stop(); } } }); }); ipc.server.start();