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.
79 lines
3.0 KiB
79 lines
3.0 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.NodeDependencyType = void 0;
|
|
exports.addPackageJsonDependency = addPackageJsonDependency;
|
|
exports.removePackageJsonDependency = removePackageJsonDependency;
|
|
exports.getPackageJsonDependency = getPackageJsonDependency;
|
|
exports.addTestRunnerDependencies = addTestRunnerDependencies;
|
|
const schema_1 = require("../ng-new/schema");
|
|
const dependency_1 = require("./dependency");
|
|
const json_file_1 = require("./json-file");
|
|
const latest_versions_1 = require("./latest-versions");
|
|
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);
|
|
}
|
|
}
|
|
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]);
|
|
}
|
|
}
|
|
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;
|
|
}
|
|
function addTestRunnerDependencies(testRunner, skipInstall) {
|
|
const dependencies = testRunner === schema_1.TestRunner.Vitest
|
|
? ['vitest', 'jsdom']
|
|
: [
|
|
'karma',
|
|
'karma-chrome-launcher',
|
|
'karma-coverage',
|
|
'karma-jasmine',
|
|
'karma-jasmine-html-reporter',
|
|
'jasmine-core',
|
|
'@types/jasmine',
|
|
];
|
|
return dependencies.map((name) => (0, dependency_1.addDependency)(name, latest_versions_1.latestVersions[name], {
|
|
type: dependency_1.DependencyType.Dev,
|
|
existing: dependency_1.ExistingBehavior.Skip,
|
|
install: skipInstall ? dependency_1.InstallBehavior.None : dependency_1.InstallBehavior.Auto,
|
|
}));
|
|
}
|
|
//# sourceMappingURL=dependencies.js.map
|