UNPKG

@copperjs/copper

Version:
59 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodeServer = void 0; const node_fetch_1 = require("node-fetch"); const server_1 = require("../standalone/server"); const logger_1 = require("../logger"); const utils_1 = require("../common/utils"); const config_1 = require("./config"); class NodeServer extends server_1.StandaloneServer { constructor(serverConfig) { super(serverConfig); } async listen() { const result = await super.listen(); await this.register(); return result; } async stop() { const result = await super.stop(); await this.deregister(); return result; } async register(retries = config_1.nodeConfig.value.registerRetries) { try { await node_fetch_1.default(`http://${config_1.nodeConfig.value.hubHost}:${config_1.nodeConfig.value.hubPort}/grid/node`, { method: 'POST', body: JSON.stringify({ config: config_1.nodeConfig.value }), headers: { 'Content-Type': 'application/json' }, }); } catch (err) { if (retries <= 0) { throw err; } logger_1.logger.error('error registering node. retrying in 5 seconds'); await utils_1.delay(config_1.nodeConfig.value.registerInterval); process.nextTick(() => this.register(retries - 1)); } } async deregister(retries = config_1.nodeConfig.value.deregisterRetries) { try { await node_fetch_1.default(`http://${config_1.nodeConfig.value.hubHost}:${config_1.nodeConfig.value.hubPort}/grid/node`, { method: 'DELETE', body: JSON.stringify({ config: config_1.nodeConfig.value }), headers: { 'Content-Type': 'application/json' }, }); } catch (err) { if (retries <= 0) { throw err; } logger_1.logger.error('error deregistering node. retrying in 5 seconds'); await utils_1.delay(config_1.nodeConfig.value.deregisterInterval); process.nextTick(() => this.deregister(retries - 1)); } } } exports.NodeServer = NodeServer; //# sourceMappingURL=server.js.map