@nebular/theme
Version:
@nebular/theme
152 lines (151 loc) • 6.16 kB
JavaScript
/*
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.addDevDependencyToPackageJson = exports.getDevDependencyVersionFromPackageJson = exports.addDependencyToPackageJson = exports.getDependencyVersionFromPackageJson = exports.getEvaIconsVersion = exports.getNebularPeerDependencyVersionFromPackageJson = exports.getNebularVersion = void 0;
var file_1 = require("./file");
var packageJsonName = 'package.json';
function getNebularVersion() {
return getNebularPackageJson().version;
}
exports.getNebularVersion = getNebularVersion;
/**
* Gets the version of the specified Nebular peerDependency
* */
function getNebularPeerDependencyVersionFromPackageJson(packageName) {
var packageJson = getNebularPackageJson();
if (noInfoAboutPeerDependency(packageJson, packageName)) {
throwNoPackageInfoInPackageJson(packageName);
}
return packageJson.peerDependencies[packageName];
}
exports.getNebularPeerDependencyVersionFromPackageJson = getNebularPeerDependencyVersionFromPackageJson;
/**
* Eva Icons version
* */
function getEvaIconsVersion() {
var packageJson = getNebularEvaIconsPackageJson();
var packageName = 'eva-icons';
if (noInfoAboutPeerDependency(packageJson, packageName)) {
throwNoPackageInfoInPackageJson(packageName);
}
return packageJson.peerDependencies[packageName];
}
exports.getEvaIconsVersion = getEvaIconsVersion;
/**
* Gets the version of the specified dependency by looking at the package.json in the specified tree
* */
function getDependencyVersionFromPackageJson(tree, packageName) {
if (!tree.exists(packageJsonName)) {
throwNoPackageJsonError();
}
var packageJson = file_1.readJSON(tree, packageJsonName);
if (noInfoAboutDependency(packageJson, packageName)) {
throwNoPackageInfoInPackageJson(packageName);
}
return packageJson.dependencies[packageName];
}
exports.getDependencyVersionFromPackageJson = getDependencyVersionFromPackageJson;
function addDependencyToPackageJson(tree, packageName, packageVersion, force) {
if (force === void 0) { force = false; }
if (!tree.exists(packageJsonName)) {
throwNoPackageJsonError();
}
var packageJson = file_1.readJSON(tree, packageJsonName);
if (!packageJson.dependencies) {
packageJson.dependencies = {};
}
if (!packageJson.dependencies[packageName] || force) {
packageJson.dependencies[packageName] = packageVersion;
packageJson.dependencies = sortObjectByKeys(packageJson.dependencies);
}
file_1.writeJSON(tree, packageJsonName, packageJson);
}
exports.addDependencyToPackageJson = addDependencyToPackageJson;
/**
* Gets the version of the specified dev dependency by looking at the package.json in the specified tree
* */
function getDevDependencyVersionFromPackageJson(tree, packageName) {
if (!tree.exists(packageJsonName)) {
throwNoPackageJsonError();
}
var packageJson = file_1.readJSON(tree, packageJsonName);
if (noInfoAboutDevDependency(packageJson, packageName)) {
throwNoPackageInfoInPackageJson(packageName);
}
return packageJson.devDependencies[packageName];
}
exports.getDevDependencyVersionFromPackageJson = getDevDependencyVersionFromPackageJson;
function addDevDependencyToPackageJson(tree, packageName, packageVersion) {
if (!tree.exists(packageJsonName)) {
throwNoPackageJsonError();
}
var packageJson = file_1.readJSON(tree, packageJsonName);
if (!packageJson.devDependencies) {
packageJson.devDependencies = {};
}
if (!packageJson.devDependencies[packageName]) {
packageJson.devDependencies[packageName] = packageVersion;
packageJson.devDependencies = sortObjectByKeys(packageJson.devDependencies);
}
file_1.writeJSON(tree, packageJsonName, packageJson);
}
exports.addDevDependencyToPackageJson = addDevDependencyToPackageJson;
function throwNoPackageJsonError() {
throw new Error('No package.json found in the tree.');
}
function throwNoPackageInfoInPackageJson(packageName) {
throw new Error("No info found in package.json for " + packageName);
}
/**
* Validates packageJson has dependencies, also as specified dependency not exists.
* */
function noInfoAboutDependency(packageJson, packageName) {
return !dependencyAlreadyExists(packageJson, packageName);
}
/**
* Validates packageJson has devDependencies, also as specified devDependency not exists.
* */
function noInfoAboutDevDependency(packageJson, packageName) {
return !devDependencyAlreadyExists(packageJson, packageName);
}
/**
* Validates packageJson has peerDependencies, also as specified peerDependency not exists.
* */
function noInfoAboutPeerDependency(packageJson, packageName) {
return !peerDependencyAlreadyExists(packageJson, packageName);
}
/**
* Validates packageJson has dependencies, also as specified dependency exists.
* */
function dependencyAlreadyExists(packageJson, packageName) {
return !!(packageJson.dependencies && packageJson.dependencies[packageName]);
}
/**
* Validates packageJson has devDependencies, also as specified devDependency exists.
* */
function devDependencyAlreadyExists(packageJson, packageName) {
return !!(packageJson.devDependencies && packageJson.devDependencies[packageName]);
}
/**
* Validates packageJson has peerDependencies, also as specified peerDependency exists.
* */
function peerDependencyAlreadyExists(packageJson, packageName) {
return !!(packageJson.peerDependencies && packageJson.peerDependencies[packageName]);
}
/**
* Sorts the keys of the given object.
* @returns A new object instance with sorted keys
*/
function sortObjectByKeys(obj) {
return Object.keys(obj).sort().reduce(function (result, key) { return (result[key] = obj[key]) && result; }, {});
}
function getNebularPackageJson() {
return require('../../package.json');
}
function getNebularEvaIconsPackageJson() {
return require('../../../eva-icons/package.json');
}
;