mirror of https://github.com/ghostfolio/ghostfolio
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.8 KiB
51 lines
1.8 KiB
"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.dev/license
|
|
*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.addPackageToPackageJson = addPackageToPackageJson;
|
|
exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
|
|
/**
|
|
* Sorts the keys of the given object.
|
|
* @returns A new object instance with sorted keys
|
|
*/
|
|
function sortObjectByKeys(obj) {
|
|
return Object.keys(obj)
|
|
.sort()
|
|
.reduce((result, key) => {
|
|
result[key] = obj[key];
|
|
return result;
|
|
}, {});
|
|
}
|
|
/** Adds a package to the package.json in the given host tree. */
|
|
function addPackageToPackageJson(host, pkg, version) {
|
|
if (host.exists('package.json')) {
|
|
const sourceText = host.read('package.json').toString('utf-8');
|
|
const json = JSON.parse(sourceText);
|
|
if (!json.dependencies) {
|
|
json.dependencies = {};
|
|
}
|
|
if (!json.dependencies[pkg]) {
|
|
json.dependencies[pkg] = version;
|
|
json.dependencies = sortObjectByKeys(json.dependencies);
|
|
}
|
|
host.overwrite('package.json', JSON.stringify(json, null, 2));
|
|
}
|
|
return host;
|
|
}
|
|
/** Gets the version of the specified package by looking at the package.json in the given tree. */
|
|
function getPackageVersionFromPackageJson(tree, name) {
|
|
if (!tree.exists('package.json')) {
|
|
return null;
|
|
}
|
|
const packageJson = JSON.parse(tree.read('package.json').toString('utf8'));
|
|
if (packageJson.dependencies && packageJson.dependencies[name]) {
|
|
return packageJson.dependencies[name];
|
|
}
|
|
return null;
|
|
}
|
|
//# sourceMappingURL=package-config.js.map
|