@azure-tools/extension
Version:
Yarn-Based extension aquisition (for Azure Open Source Projects)
43 lines • 1.76 kB
JavaScript
;
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