UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

43 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const codecs_1 = require("@alwaysai/codecs"); const cloud_api_1 = require("@alwaysai/cloud-api"); const alwayscli_1 = require("@alwaysai/alwayscli"); const send_rpc_data_1 = require("./send-rpc-data"); const deserialize_rpc_response_1 = require("./deserialize-rpc-response"); const cognito_auth_1 = require("../util/cognito-auth"); const credentials_store_1 = require("../util/credentials-store"); const cli_config_1 = require("../util/cli-config"); async function RpcClient() { const bearerToken = await cognito_auth_1.getBearerToken(); const sendRpcData = send_rpc_data_1.SendRpcData({ bearerToken, cloudApiUrl: cli_config_1.cloudApiUrl }); const rpcClient = {}; for (const [methodName, { argsCodec }] of Object.entries(cloud_api_1.rpcMethodSpecs)) { rpcClient[methodName] = async (...rawArgs) => { // Client-side validation of args const args = codecs_1.cast(argsCodec, rawArgs); // Prepare request const rpcRequest = { methodName, args: args, }; const data = JSON.stringify(rpcRequest); // Send request const responseData = await sendRpcData(data); // Process response try { const result = deserialize_rpc_response_1.deserializeRpcResponse(responseData); return result; } catch (err) { if (err.code === cloud_api_1.ErrorCode.AUTHENTICATION_REQUIRED) { throw new alwayscli_1.TerseError(credentials_store_1.PLEASE_LOG_IN_MESSAGE); } throw err; } }; } return rpcClient; } exports.RpcClient = RpcClient; //# sourceMappingURL=index.js.map