UNPKG

pandora-metrics

Version:
73 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const pandora_messenger_1 = require("pandora-messenger"); const MetricsConstants_1 = require("../MetricsConstants"); let metricsServer = null; let metricsClient = null; function initMessenger() { metricsServer = pandora_messenger_1.default.getServer({ name: MetricsConstants_1.MetricsConstants.SOCKET_FILE_NAME }); } function initClient() { metricsClient = pandora_messenger_1.default.getClient({ name: MetricsConstants_1.MetricsConstants.SOCKET_FILE_NAME, unref: true }); } function getDiscoveryKey(name) { return [MetricsConstants_1.MetricsConstants.SERVER_DISCOVER_KEY_PREFIX, name].join(MetricsConstants_1.MetricsConstants.MESSENGER_SPLIT); } function getServer() { if (!metricsServer) { initMessenger(); } return metricsServer; } exports.getServer = getServer; function getClient() { if (!metricsClient) { initClient(); } return metricsClient; } exports.getClient = getClient; class MetricsMessengerServer { constructor(messengerKey) { this.server = getServer(); this.messengerKey = messengerKey; } discovery(messengerProcess) { this.server.on(getDiscoveryKey(this.messengerKey), (data, reply, client) => { messengerProcess(data, reply, client); }); } close(callback = (() => { })) { this.server.close(callback); } } exports.MetricsMessengerServer = MetricsMessengerServer; class MetricsMessengerClient { constructor(messengerKey) { this.client = getClient(); this.messengerKey = messengerKey; } register(data, callback) { this.client.ready(() => { this.client.send(getDiscoveryKey(this.messengerKey), data, callback); }); } query(CLIENT_KEY, processQuery) { this.client.on(CLIENT_KEY, processQuery); } report(REPORT_KEY, data) { this.client.ready(() => { this.client.send(REPORT_KEY, data); }); } close() { this.client.close(); } } exports.MetricsMessengerClient = MetricsMessengerClient; //# sourceMappingURL=MessengerUtil.js.map