ddnsman
Version:
DDNS Management
48 lines (47 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const node_ipc_1 = require("node-ipc");
exports.pingDaemon = () => {
const pingIpc = new node_ipc_1.IPC();
pingIpc.config.appspace = 'ddns.';
pingIpc.config.id = 'pingClient';
pingIpc.config.maxRetries = 3;
pingIpc.config.silent = true;
return new Promise((resolve) => {
pingIpc.connectTo('worker', () => {
pingIpc.of.worker.on('connect', () => {
resolve(true);
});
pingIpc.of.worker.on('error', () => {
resolve(false);
});
});
}).finally(() => {
pingIpc.disconnect('worker');
});
};
exports.sendMessage = (msg) => {
const ipc = new node_ipc_1.IPC();
ipc.config.appspace = 'ddns.';
ipc.config.id = 'client';
ipc.config.silent = true;
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error('Connecting to daemon timeout.'));
}, 3000);
ipc.connectTo('worker', () => {
ipc.of.worker.on('connect', () => {
ipc.of.worker.emit('message', msg);
ipc.of.worker
.on('message', (data) => {
resolve(data);
})
.on('error', (err) => {
reject(err);
});
});
});
}).finally(() => {
ipc.disconnect('worker');
});
};