UNPKG

@sentry/wizard

Version:

Sentry wizard helping you to configure your project

83 lines 3.71 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasPackageInstalled = exports.checkPackageVersion = void 0; var _ = __importStar(require("lodash")); var semver_1 = require("semver"); var Logging_1 = require("./Logging"); function checkPackageVersion(appPackage, packageName, acceptableVersions, canBeLatest) { var depsVersion = _.get(appPackage, ['dependencies', packageName]); var devDepsVersion = _.get(appPackage, ['devDependencies', packageName]); if (!depsVersion && !devDepsVersion) { (0, Logging_1.red)("\u2717 ".concat(packageName, " isn't in your dependencies.")); (0, Logging_1.red)(' Please install it with yarn/npm.'); return false; } else if (!fulfillsVersionRange(depsVersion, acceptableVersions, canBeLatest) && !fulfillsVersionRange(devDepsVersion, acceptableVersions, canBeLatest)) { (0, Logging_1.red)("\u2717 Your `package.json` specifies a version of `".concat(packageName, "` outside of the compatible version range ").concat(acceptableVersions, ".\n")); return false; } else { (0, Logging_1.green)("\u2713 A compatible version of `".concat(packageName, "` is specified in `package.json`.")); return true; } } exports.checkPackageVersion = checkPackageVersion; function fulfillsVersionRange(version, acceptableVersions, canBeLatest) { if (version === 'latest') { return canBeLatest; } var cleanedUserVersion, isRange; if ((0, semver_1.valid)(version)) { cleanedUserVersion = (0, semver_1.valid)(version); isRange = false; } else if ((0, semver_1.validRange)(version)) { cleanedUserVersion = (0, semver_1.validRange)(version); isRange = true; } return ( // If the given version is a bogus format, this will still be undefined and we'll automatically reject it !!cleanedUserVersion && (isRange ? (0, semver_1.subset)(cleanedUserVersion, acceptableVersions) : (0, semver_1.satisfies)(cleanedUserVersion, acceptableVersions))); } /** * Determines if the passed `package.json` object has the passed package installed. * * @param appPackage The `package.json` object * @param packageName The name of the package to check for * * @returns `true` if the package is installed, `false` otherwise */ function hasPackageInstalled(appPackage, packageName) { var depsVersion = appPackage.dependencies[packageName]; var devDepsVersion = appPackage.devDependencies[packageName]; return !!depsVersion || !!devDepsVersion; } exports.hasPackageInstalled = hasPackageInstalled; //# sourceMappingURL=Package.js.map