@ts-dev-tools/core
Version:
TS dev tools Core
89 lines (88 loc) • 3.77 kB
JavaScript
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageJson = void 0;
var PackageJsonMerge_1 = require("./PackageJsonMerge");
var FileService_1 = require("./FileService");
var path_1 = require("path");
var PackageJson = /** @class */ (function () {
function PackageJson(path) {
this.path = path;
this.content = undefined;
if (!FileService_1.FileService.fileExists(this.path)) {
throw new Error("Package.json \"".concat(this.path, "\" does not exist"));
}
}
PackageJson.prototype.getPath = function () {
return this.path;
};
PackageJson.prototype.getContent = function () {
if (this.content) {
return this.content;
}
return (this.content = JSON.parse(FileService_1.FileService.getFileContent(this.path)));
};
PackageJson.prototype.setContent = function (content) {
this.content = content;
this.write();
};
PackageJson.prototype.getPackageName = function () {
return this.getContent().name;
};
PackageJson.prototype.getPackageVersion = function () {
return this.getContent().version;
};
PackageJson.prototype.isPrivate = function () {
return this.getContent().private === true;
};
PackageJson.prototype.getTsDevToolsVersion = function () {
var tsDevToolsConfig = this.getContent().tsDevTools;
var version = tsDevToolsConfig === null || tsDevToolsConfig === void 0 ? void 0 : tsDevToolsConfig.version;
return version;
};
PackageJson.prototype.getDependenciesPackageNames = function () {
var dependencies = this.getContent().dependencies;
return dependencies ? Object.keys(dependencies) : [];
};
PackageJson.prototype.getDevDependenciesPackageNames = function () {
var devDependencies = this.getContent().devDependencies;
return devDependencies ? Object.keys(devDependencies) : [];
};
PackageJson.prototype.getAllDependenciesPackageNames = function () {
return Array.from(new Set(__spreadArray(__spreadArray([], this.getDependenciesPackageNames(), true), this.getDevDependenciesPackageNames(), true)));
};
PackageJson.prototype.hasDependency = function (packageName) {
return this.getAllDependenciesPackageNames().includes(packageName);
};
PackageJson.prototype.merge = function (update) {
this.content = PackageJsonMerge_1.PackageJsonMerge.merge(this.getContent(), update);
this.write();
};
PackageJson.prototype.backup = function () {
var backupPath = this.path + ".backup";
FileService_1.FileService.copyFile(this.path, backupPath);
return backupPath;
};
PackageJson.prototype.restore = function (backupPath) {
FileService_1.FileService.copyFile(backupPath, this.path);
this.content = undefined;
};
PackageJson.prototype.write = function () {
FileService_1.FileService.putFileContent(this.path, JSON.stringify(this.content, null, 2));
};
PackageJson.fromDirPath = function (dirPath) {
var packageJsonPath = (0, path_1.join)(dirPath, PackageJson.PACKAGE_JSON_FILE_NAME);
return new PackageJson(packageJsonPath);
};
PackageJson.PACKAGE_JSON_FILE_NAME = "package.json";
return PackageJson;
}());
exports.PackageJson = PackageJson;
;