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