UNPKG

@azure-tools/extension

Version:

Yarn-Based extension aquisition (for Azure Open Source Projects)

43 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Npm = exports.execNpm = exports.DEFAULT_NPM_REGISTRY = void 0; const path_1 = require("path"); const exec_cmd_1 = require("./exec-cmd"); const package_manager_1 = require("./package-manager"); exports.DEFAULT_NPM_REGISTRY = "https://registry.npmjs.org"; const getPathToNpmCli = () => { const npmPath = (0, path_1.dirname)(require.resolve("npm/package.json")); return (0, path_1.resolve)(`${npmPath}/bin/npm-cli.js`); }; const execNpm = async (cwd, ...args) => { const procArgs = [ getPathToNpmCli(), "--no-shrinkwrap", "--registry", process.env.autorest_registry || exports.DEFAULT_NPM_REGISTRY, ...args, ]; return await (0, exec_cmd_1.execute)(process.execPath, procArgs, { cwd }); }; exports.execNpm = execNpm; class Npm { async install(directory, packages, options) { await (0, package_manager_1.ensurePackageJsonExists)(directory); const output = await (0, exports.execNpm)(directory, "install", "--save", "--prefix", directory.replace(/\\/g, "/"), ...((options === null || options === void 0 ? void 0 : options.force) ? ["--force"] : []), ...packages); if (output.error) { return { success: false, error: { message: `Failed to install package '${packages}' -- ${output.error}`, logs: output.log.split("\n").map((x) => ({ severity: "info", message: x })), }, }; } return { success: true }; } async clean(directory) { await (0, exports.execNpm)(directory, "cache", "clean", "--force"); } } exports.Npm = Npm; //# sourceMappingURL=npm.js.map