UNPKG

@ts-dev-tools/core

Version:
89 lines (88 loc) 3.77 kB
"use strict"; 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;