1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.NodeDependencyType = void 0;
|
4 | exports.addPackageJsonDependency = addPackageJsonDependency;
|
5 | exports.getPackageJsonDependency = getPackageJsonDependency;
|
6 | const json_file_util_1 = require("./json-file.util");
|
7 | const PKG_JSON_PATH = '/package.json';
|
8 | var 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 = {}));
|
15 | const ALL_DEPENDENCY_TYPE = [
|
16 | NodeDependencyType.Default,
|
17 | NodeDependencyType.Dev,
|
18 | NodeDependencyType.Optional,
|
19 | NodeDependencyType.Peer,
|
20 | ];
|
21 | function 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 | }
|
29 | function 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 | }
|