UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

53 lines 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const alwayscli_1 = require("@alwaysai/alwayscli"); const model_config_file_1 = require("./model-config-file"); const rpc_client_1 = require("../../rpc-client"); const parse_package_url_1 = require("../../model-manager/parse-package-url"); const package_stream_from_cache_1 = require("../../model-manager/package-stream-from-cache"); const package_stream_from_cwd_1 = require("../../model-manager/package-stream-from-cwd"); const stream_package_to_cache_1 = require("../../model-manager/stream-package-to-cache"); const spin_on_promise_1 = require("../../util/spin-on-promise"); const s3_1 = require("../../util/s3"); exports.publish = alwayscli_1.createLeaf({ name: 'publish', description: 'Publish a new version of a model to the alwaysAI cloud', async action() { const config = model_config_file_1.modelConfigFile.read(); const { accuracy, description, id, license, public: public_, version } = config; const strippedConfig = { accuracy, description, id, license, public: public_, version, }; // Create the provisional record in the database and get packageUrl const rpcApi = await rpc_client_1.RpcClient(); const modelVersion = await rpcApi.createModelVersion(strippedConfig); await spin_on_promise_1.spinOnPromise((async () => { const cwdPackageStream = await package_stream_from_cwd_1.PackageStreamFromCwd(); await stream_package_to_cache_1.streamPackageToCache({ id: config.id, version: config.version, readable: cwdPackageStream, }); })(), 'Create package'); await spin_on_promise_1.spinOnPromise((async () => { const { awsRegion, bucketName, bucketKey } = parse_package_url_1.parsePackageUrl(modelVersion.packageUrl); const s3 = s3_1.S3({ region: awsRegion }); const readStream = await package_stream_from_cache_1.PackageStreamFromCache({ id: config.id, version: config.version, }); await s3 .upload({ Bucket: bucketName, Body: readStream, Key: bucketKey }) .promise(); })(), 'Upload to cloud'); await spin_on_promise_1.spinOnPromise((async () => { await rpcApi.finalizeModelVersion(modelVersion.uuid); })(), 'Mark package as final'); }, }); //# sourceMappingURL=publish.js.map