57 lines
6.6 KiB
JavaScript
57 lines
6.6 KiB
JavaScript
|
"use strict";
|
||
|
/**
|
||
|
* @license
|
||
|
* Copyright Google LLC All Rights Reserved.
|
||
|
*
|
||
|
* Use of this source code is governed by an MIT-style license that can be
|
||
|
* found in the LICENSE file at https://angular.io/license
|
||
|
*/
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.getPackageJsonDependency = exports.removePackageJsonDependency = exports.addPackageJsonDependency = exports.NodeDependencyType = void 0;
|
||
|
const json_file_1 = require("./json-file");
|
||
|
const PKG_JSON_PATH = '/package.json';
|
||
|
var NodeDependencyType;
|
||
|
(function (NodeDependencyType) {
|
||
|
NodeDependencyType["Default"] = "dependencies";
|
||
|
NodeDependencyType["Dev"] = "devDependencies";
|
||
|
NodeDependencyType["Peer"] = "peerDependencies";
|
||
|
NodeDependencyType["Optional"] = "optionalDependencies";
|
||
|
})(NodeDependencyType || (exports.NodeDependencyType = NodeDependencyType = {}));
|
||
|
const ALL_DEPENDENCY_TYPE = [
|
||
|
NodeDependencyType.Default,
|
||
|
NodeDependencyType.Dev,
|
||
|
NodeDependencyType.Optional,
|
||
|
NodeDependencyType.Peer,
|
||
|
];
|
||
|
function addPackageJsonDependency(tree, dependency, pkgJsonPath = PKG_JSON_PATH) {
|
||
|
const json = new json_file_1.JSONFile(tree, pkgJsonPath);
|
||
|
const { overwrite, type, name, version } = dependency;
|
||
|
const path = [type, name];
|
||
|
if (overwrite || !json.get(path)) {
|
||
|
json.modify(path, version);
|
||
|
}
|
||
|
}
|
||
|
exports.addPackageJsonDependency = addPackageJsonDependency;
|
||
|
function removePackageJsonDependency(tree, name, pkgJsonPath = PKG_JSON_PATH) {
|
||
|
const json = new json_file_1.JSONFile(tree, pkgJsonPath);
|
||
|
for (const depType of ALL_DEPENDENCY_TYPE) {
|
||
|
json.remove([depType, name]);
|
||
|
}
|
||
|
}
|
||
|
exports.removePackageJsonDependency = removePackageJsonDependency;
|
||
|
function getPackageJsonDependency(tree, name, pkgJsonPath = PKG_JSON_PATH) {
|
||
|
const json = new json_file_1.JSONFile(tree, pkgJsonPath);
|
||
|
for (const depType of ALL_DEPENDENCY_TYPE) {
|
||
|
const version = json.get([depType, name]);
|
||
|
if (typeof version === 'string') {
|
||
|
return {
|
||
|
type: depType,
|
||
|
name: name,
|
||
|
version,
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
exports.getPackageJsonDependency = getPackageJsonDependency;
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2NoZW1hdGljcy9hbmd1bGFyL3V0aWxpdHkvZGVwZW5kZW5jaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUdILDJDQUF1QztBQUV2QyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7QUFDdEMsSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLDhDQUF3QixDQUFBO0lBQ3hCLDZDQUF1QixDQUFBO0lBQ3ZCLCtDQUF5QixDQUFBO0lBQ3pCLHVEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFMVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQUs3QjtBQVNELE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsa0JBQWtCLENBQUMsT0FBTztJQUMxQixrQkFBa0IsQ0FBQyxHQUFHO0lBQ3RCLGtCQUFrQixDQUFDLFFBQVE7SUFDM0Isa0JBQWtCLENBQUMsSUFBSTtDQUN4QixDQUFDO0FBRUYsU0FBZ0Isd0JBQXdCLENBQ3RDLElBQVUsRUFDVixVQUEwQixFQUMxQixXQUFXLEdBQUcsYUFBYTtJQUUzQixNQUFNLElBQUksR0FBRyxJQUFJLG9CQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFDdEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQVpELDREQVlDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLElBQVUsRUFDVixJQUFZLEVBQ1osV0FBVyxHQUFHLGFBQWE7SUFFM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxvQkFBUSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU3QyxLQUFLLE1BQU0sT0FBTyxJQUFJLG1CQUFtQixFQUFFO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUM5QjtBQUNILENBQUM7QUFWRCxrRUFVQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxJQUFVLEVBQ1YsSUFBWSxFQUNaLFdBQVcsR0FBRyxhQUFhO0lBRTNCLE1BQU0sSUFBSSxHQUFHLElBQUksb0JBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFN0MsS0FBSyxNQUFNLE9BQU8sSUFBSSxtQkFBbUIsRUFBRTtRQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFMUMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsT0FBTztnQkFDTCxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPO2FBQ1IsQ0FBQztTQUNIO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFwQkQsNERBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IFRyZWUgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQgeyBKU09ORmlsZSB9IGZyb20gJy4vanNvbi1maWxlJztcblxuY29uc3QgUEtHX0pTT05fUEFUSCA9ICcvcGFja2FnZS5qc29uJztcbmV4cG9ydCBlbnVtIE5vZGVEZXBlbmRlbmN5VHlwZSB7XG4gIERlZmF1bHQgPSAnZGVwZW5kZW5jaWVzJyxcbiAgRGV2ID0gJ2RldkRlcGVuZGVuY2llcycsXG4gIFBlZXIgPSAncGVlckRlcGVuZGVuY2llcycsXG4gIE9wdGlvbmFsID0gJ29wdGlvbmFsRGVwZW5kZW5jaWVzJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb2RlRGVwZW5kZW5jeSB7XG4gIHR5cGU6IE5vZGVEZXBlbmRlbmN5VHlwZTtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIG92ZXJ3cml0ZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IEFMTF9ERVBFTkRFTkNZX1RZUEUgPSBbXG4gIE5vZGVEZXBlbmRlbmN5VHlwZS5EZWZhdWx0LFxuICBOb2RlRGVwZW5kZW5jeVR5cGUuRGV2LFxuICBOb2RlRGVwZW5kZW5jeVR5cGUuT3B0aW9uYWwsXG4gIE5vZGVEZXBlbmRlbmN5VHlwZS5QZWVyLFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhY2thZ2VKc29uRGVwZW5kZW5jeShcbiAgdHJlZTogVHJlZSxcbiAgZGVwZW5kZW5jeTogTm9kZURlcGVuZGVuY3ksXG4gIHBrZ0pzb25QYXRoID0gUEtHX0pTT05fUEFUSCxcbik6IHZvaWQge1xuICBjb25zdCBqc29uID0gbmV3IEpTT05GaWxlKHRyZWUsIHBrZ0pzb25QYXRoKTtcblxuICBjb25zdCB7IG92ZXJ3cml0ZSwgdHlwZSwgbmFtZSwgdmVyc2lvbiB9ID0gZGVwZW5kZW5jeTtcbiAgY29uc3QgcGF0aCA9IFt0eXBlLCBuYW1lXTtcbiAgaWYgKG92ZXJ3cml0ZSB8fCAhanNvbi5nZXQocGF0aCkpIHtcbiAgICBqc29uLm1vZGlmeShwYXRoLCB2ZXJzaW9uKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGFja2FnZUpzb25EZXBlbmRlbmN5KFxuICB0cmVlOiBUcmVlLFxuICBuYW1lOiBzdHJpbmcsXG4gIHBrZ0pzb25QYXRoID0gUEtHX0pTT05fUEFUSCxcbik6IHZvaWQge1xuICBjb25zdCBqc29uID0gbmV3IEpTT05GaWxlKHRyZWUsIHBrZ0pzb25QYXRoKTtcblxuICBmb3IgKGNvbnN0IGRlcFR5cGUgb2YgQUxMX0RFUEVOREVOQ1lfVFlQRSkge1xuICAgIGpzb24ucmVtb3ZlKFtkZXBUeXBlLCBuYW1lXSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VKc29uRGVwZW5kZW5jeShcbiAgdHJlZTogVHJlZSxcbiAgbmFtZTogc3RyaW5nL
|