UNPKG

@ts-common/azure-js-dev-tools

Version:

Developer dependencies for TypeScript related projects

144 lines 6.61 kB
"use strict"; /** * Copyright (c) Microsoft Corporation. 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.removePackageLockJsonDependencies = exports.isPackageJsonPublished = exports.incrementPackageJsonMinorVersion = exports.writePackageJsonFileSync = exports.readPackageJsonFileSync = exports.findPackageJsonFileSync = exports.writePackageLockJsonFileSync = exports.readPackageLockJsonFileSync = void 0; var tslib_1 = require("tslib"); var fs = tslib_1.__importStar(require("fs")); var arrays_1 = require("./arrays"); var npm_1 = require("./npm"); var path_1 = require("./path"); var version_1 = require("./version"); /** * Read and parse the PackageJson object found at the provided file path. * @param packageJsonFilePath The path to the file that will be parsed as a PackageJson object. * @returns The parsed PackageJson object. */ function readPackageLockJsonFileSync(packageJsonFilePath) { return JSON.parse(fs.readFileSync(packageJsonFilePath, { encoding: "utf8" })); } exports.readPackageLockJsonFileSync = readPackageLockJsonFileSync; /** * Save to the provided PackageJson object to the file at the provided file path. * @param packageLockJson The PackageLockJson object to save. * @param packageJsonFilePath The path to the file where the PackageLockJson object will be saved to. */ function writePackageLockJsonFileSync(packageLockJson, packageJsonFilePath) { fs.writeFileSync(packageJsonFilePath, JSON.stringify(packageLockJson, undefined, 2), { encoding: "utf8" }); } exports.writePackageLockJsonFileSync = writePackageLockJsonFileSync; /** * Find a package.json file at the provided path or in one of its ancestor folders. * @param pathString The path where the search for the package.json file will begin. * @returns The path to the found package.json file, or undefined if no file was found. */ function findPackageJsonFileSync(pathString) { var result; function fileExists(filePath) { return fs.existsSync(filePath) && fs.lstatSync(filePath).isFile(); } while (pathString && !result) { if (path_1.getName(pathString) === "package.json" && fileExists(pathString)) { result = pathString; } else { var packageJsonFilePath = path_1.joinPath(pathString, "package.json"); if (fileExists(packageJsonFilePath)) { result = packageJsonFilePath; } else { pathString = path_1.getParentFolderPath(pathString); } } } return result; } exports.findPackageJsonFileSync = findPackageJsonFileSync; /** * Read and parse the PackageJson object found at the provided file path. * @param packageJsonFilePath The path to the file that will be parsed as a PackageJson object. * @returns The parsed PackageJson object. */ function readPackageJsonFileSync(packageJsonFilePath) { return JSON.parse(fs.readFileSync(packageJsonFilePath, { encoding: "utf8" })); } exports.readPackageJsonFileSync = readPackageJsonFileSync; /** * Save to the provided PackageJson object to the file at the provided file path. * @param packageJson The PackageJson object to save. * @param packageJsonFilePath The path to the file where the PackageJson object will be saved to. */ function writePackageJsonFileSync(packageJson, packageJsonFilePath) { fs.writeFileSync(packageJsonFilePath, JSON.stringify(packageJson, undefined, 2), { encoding: "utf8" }); } exports.writePackageJsonFileSync = writePackageJsonFileSync; /** * If a version is specified in the provided PackageJson object, then increment the version's minor * number. * @param packageJson The PackageJson object to update. * @returns Whether or not the version number was successfully updated. */ function incrementPackageJsonMinorVersion(packageJson) { var result = false; if (packageJson.version) { var version = new version_1.Version(packageJson.version); version.bumpMinor(); packageJson.version = version.toString(); result = true; } return result; } exports.incrementPackageJsonMinorVersion = incrementPackageJsonMinorVersion; /** * Get whether or not the provided packageJson has been published to NPM. * @param packageJson The packageJson to check. * @returns Whether or not the provided packageJson has been published to NPM. */ function isPackageJsonPublished(packageJson) { return tslib_1.__awaiter(this, void 0, void 0, function () { var result, packageName, packageVersion, publishedVersions; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: result = false; packageName = packageJson.name; packageVersion = packageJson.version; if (!(packageName && packageVersion)) return [3 /*break*/, 2]; return [4 /*yield*/, npm_1.npmView({ packageName: packageName })]; case 1: publishedVersions = (_a.sent()).versions; result = arrays_1.contains(publishedVersions, packageVersion); _a.label = 2; case 2: return [2 /*return*/, result]; } }); }); } exports.isPackageJsonPublished = isPackageJsonPublished; function removePackageLockJsonDependencies(packageLockJson) { var e_1, _a; var dependenciesToRemove = []; for (var _i = 1; _i < arguments.length; _i++) { dependenciesToRemove[_i - 1] = arguments[_i]; } if (packageLockJson && dependenciesToRemove && dependenciesToRemove.length > 0) { try { for (var dependenciesToRemove_1 = tslib_1.__values(dependenciesToRemove), dependenciesToRemove_1_1 = dependenciesToRemove_1.next(); !dependenciesToRemove_1_1.done; dependenciesToRemove_1_1 = dependenciesToRemove_1.next()) { var dependencyToRemove = dependenciesToRemove_1_1.value; delete packageLockJson.dependencies[dependencyToRemove]; } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (dependenciesToRemove_1_1 && !dependenciesToRemove_1_1.done && (_a = dependenciesToRemove_1.return)) _a.call(dependenciesToRemove_1); } finally { if (e_1) throw e_1.error; } } } } exports.removePackageLockJsonDependencies = removePackageLockJsonDependencies; //# sourceMappingURL=packageJson.js.map