UNPKG

1.61 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.NodeDependencyType = void 0;
4exports.addPackageJsonDependency = addPackageJsonDependency;
5exports.getPackageJsonDependency = getPackageJsonDependency;
6const json_file_util_1 = require("./json-file.util");
7const PKG_JSON_PATH = '/package.json';
8var NodeDependencyType;
9(function (NodeDependencyType) {
10 NodeDependencyType["Default"] = "dependencies";
11 NodeDependencyType["Dev"] = "devDependencies";
12 NodeDependencyType["Peer"] = "peerDependencies";
13 NodeDependencyType["Optional"] = "optionalDependencies";
14})(NodeDependencyType || (exports.NodeDependencyType = NodeDependencyType = {}));
15const ALL_DEPENDENCY_TYPE = [
16 NodeDependencyType.Default,
17 NodeDependencyType.Dev,
18 NodeDependencyType.Optional,
19 NodeDependencyType.Peer,
20];
21function addPackageJsonDependency(tree, dependency, pkgJsonPath = PKG_JSON_PATH) {
22 const json = new json_file_util_1.JSONFile(tree, pkgJsonPath);
23 const { overwrite, type, name, version } = dependency;
24 const path = [type, name];
25 if (overwrite || !json.get(path)) {
26 json.modify(path, version);
27 }
28}
29function getPackageJsonDependency(tree, name, pkgJsonPath = PKG_JSON_PATH) {
30 const json = new json_file_util_1.JSONFile(tree, pkgJsonPath);
31 for (const depType of ALL_DEPENDENCY_TYPE) {
32 const version = json.get([depType, name]);
33 if (typeof version === 'string') {
34 return {
35 type: depType,
36 name: name,
37 version,
38 };
39 }
40 }
41 return null;
42}