alwaysai
Version:
The alwaysAI command-line interface (CLI)
43 lines • 1.84 kB
JavaScript
;
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