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