UNPKG

@duongtrungnguyen/nestro

Version:
62 lines 2.15 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __decorateClass = (decorators, target, key, kind) => { var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result; if (kind && result) __defProp(target, key, result); return result; }; var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index); import { Injectable, Inject } from "@nestjs/common"; import { getServerURL, normalizeJson } from "../../common"; import { INSTANCE_INFO, SERVER_INFO } from "../constants"; let PlainClientService = class { constructor(instanceInfo, serverInfo) { this.instanceInfo = instanceInfo; this.serverBaseUrl = getServerURL(serverInfo); } async onModuleInit() { await this.register(); } async beforeApplicationShutdown() { clearInterval(this.intervalId); await this.deregister(); } getHeaders() { return { "Content-Type": "application/json" }; } async register() { const response = await fetch(`${this.serverBaseUrl}/nestro/register`, { method: "POST", body: normalizeJson(this.instanceInfo), headers: this.getHeaders() }); const data = await response.json(); this.intervalId = setInterval(() => this.sendHeartbeat(), data.heartbeatInterval); } async sendHeartbeat() { await fetch(`${this.serverBaseUrl}/nestro/heartbeat`, { method: "POST", body: normalizeJson(this.instanceInfo), headers: this.getHeaders() }); } async deregister() { await fetch(`${this.serverBaseUrl}/nestro/deregister`, { method: "DELETE", body: normalizeJson(this.instanceInfo), headers: this.getHeaders() }); } }; PlainClientService = __decorateClass([ Injectable(), __decorateParam(0, Inject(INSTANCE_INFO)), __decorateParam(1, Inject(SERVER_INFO)) ], PlainClientService); export { PlainClientService }; //# sourceMappingURL=plain-client.service.js.map