UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

48 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const http = require("http"); const https = require("https"); const url_1 = require("url"); const coded_error_1 = require("@carnesen/coded-error"); const cloud_api_1 = require("@alwaysai/cloud-api"); function SendRpcData(config = {}) { const { cloudApiUrl = cloud_api_1.CLOUD_API_URL, bearerToken: idToken } = config; const { protocol, hostname, port } = new url_1.URL(cloudApiUrl); const headers = { 'Content-Type': 'application/json', }; if (idToken) { headers.Authorization = `Bearer ${idToken}`; } return function sendRpcData(data) { return new Promise((resolve, reject) => { const req = (protocol === 'http:' ? http : https).request({ hostname, port, method: 'POST', path: cloud_api_1.CLOUD_API_RPC_PATH, headers: Object.assign({}, headers, { 'Content-Length': data.length }), }); req.end(data); req.once('response', (res) => { let responseData = ''; res.on('data', chunk => { responseData += chunk; }); res.on('end', () => { if (res.statusCode < 599) { resolve(responseData); } else { reject(new coded_error_1.CodedError(`Server responded status ${res.statusCode}`, res.statusCode)); } }); }); req.on('error', (err) => { reject(new coded_error_1.CodedError(`http request failed "${err.message}"`, err.code)); }); }); }; } exports.SendRpcData = SendRpcData; //# sourceMappingURL=send-rpc-data.js.map