UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

49 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modelGetPackage = void 0; const alwayscli_1 = require("@alwaysai/alwayscli"); const fs_1 = require("fs"); const pump = require("pump"); const cli_inputs_1 = require("../../cli-inputs"); const user_1 = require("../../components/user"); const model_1 = require("../../core/model"); const environment_1 = require("../../environment"); const infrastructure_1 = require("../../infrastructure"); const util_1 = require("../../util"); exports.modelGetPackage = (0, alwayscli_1.CliLeaf)({ name: 'get-package', description: 'Get a model package', hidden: !environment_1.ALWAYSAI_SHOW_HIDDEN, namedInputs: { id: (0, alwayscli_1.CliStringInput)({ description: 'An alwaysAI model ID, e.g. alwaysai/mobilenet_ssd', required: true }), version: (0, alwayscli_1.CliNumberInput)({ description: 'The version number of the model' }), yes: cli_inputs_1.yesCliInput }, async action(_, { yes, id, version: maybeVersion }) { const { publisher, name } = model_1.ModelId.parse(id); await (0, user_1.checkUserIsLoggedInComponent)({ yes }); const version = maybeVersion || (await (0, infrastructure_1.CliRpcClient)().getModelVersion({ id })).version; const fileName = `${publisher}-${name}-${version}.tar.gz`; await (0, util_1.runWithSpinner)(async () => { if (!model_1.modelPackageCache.has(id, version)) { await (0, model_1.downloadModelPackageToCache)(id, version); } await new Promise((resolve, reject) => { pump(model_1.modelPackageCache.read(id, version), (0, fs_1.createWriteStream)(fileName), (err) => { if (err) { reject(err); } else { resolve(); } }); }); }, [], `Getting ${fileName}`); } }); //# sourceMappingURL=get-package.js.map