pandora-metrics
Version:
## Overview
73 lines • 2.2 kB
JavaScript
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
;