UNPKG

steadybit

Version:

Command-line interface to interact with the Steadybit API

41 lines 1.67 kB
"use strict"; // SPDX-License-Identifier: MIT // SPDX-FileCopyrightText: 2022 Steadybit GmbH var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeApiCall = executeApiCall; const eventsource_1 = __importDefault(require("eventsource")); const rxjs_1 = require("rxjs"); const errors_1 = require("../errors"); const common_1 = require("./common"); function executeApiCall({ path, queryParameters }) { return (0, rxjs_1.from)((0, common_1.getHeaders)()) .pipe((0, rxjs_1.combineLatestWith)((0, rxjs_1.from)((0, common_1.toUrl)(path, queryParameters)))) .pipe((0, rxjs_1.switchMap)(([headers, url]) => executeApiCallInternal(url, headers))); } function executeApiCallInternal(url, headers) { return new rxjs_1.Observable(subscriber => { const es = new eventsource_1.default(url, { headers, }); es.onmessage = (event) => { if (event.type !== 'heart-beat') { const data = JSON.parse(event.data); subscriber.next(data); } }; es.onerror = (event) => { const status = event.status; if (status != null) { subscriber.error(new Error(`Failed to establish SSE connection to ${url}. Got status code ${status}`)); } else { (0, errors_1.abortExecution)('Connection to SSE endpoint %s failed: %s', url, event); } }; return () => es.close(); }); } //# sourceMappingURL=sse.js.map