UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

35 lines 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const util_1 = require("util"); const pump = require("pump"); const rimraf = require("rimraf"); const get_random_string_1 = require("../util/get-random-string"); const model_package_path_1 = require("./model-package-path"); const mkdirp = require("mkdirp"); const path_1 = require("path"); const rimrafAsync = util_1.promisify(rimraf); async function streamPackageToCache(opts) { const packagePath = model_package_path_1.ModelPackagePath(opts); await util_1.promisify(mkdirp)(path_1.dirname(packagePath)); const downloadPath = `${packagePath}.${get_random_string_1.getRandomString()}.download`; try { await new Promise((resolve, reject) => { const writeable = fs_1.createWriteStream(downloadPath); pump(opts.readable, writeable, err => { if (err) { reject(err); } else { resolve(); } }); }); await util_1.promisify(fs_1.rename)(downloadPath, packagePath); } finally { await rimrafAsync(downloadPath); } } exports.streamPackageToCache = streamPackageToCache; //# sourceMappingURL=stream-package-to-cache.js.map