amis-rpc-design/node_modules/@react-native-community/cli-tools/build/releaseChecker/index.js
2023-10-07 19:42:30 +08:00

87 lines
2.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.current = current;
exports.latest = latest;
exports.logIfUpdateAvailable = logIfUpdateAvailable;
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _semver() {
const data = _interopRequireDefault(require("semver"));
_semver = function () {
return data;
};
return data;
}
var _errors = require("../errors");
var _logger = _interopRequireDefault(require("../logger"));
var _resolveNodeModuleDir = _interopRequireDefault(require("../resolveNodeModuleDir"));
var _getLatestRelease = _interopRequireDefault(require("./getLatestRelease"));
var _printNewRelease = _interopRequireDefault(require("./printNewRelease"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getReactNativeVersion = projectRoot => {
var _require;
return (_require = require(_path().default.join((0, _resolveNodeModuleDir.default)(projectRoot, 'react-native'), 'package.json'))) === null || _require === void 0 ? void 0 : _require.version;
};
/**
* Logs out a message if the user's version is behind a stable version of React Native
*/
async function logIfUpdateAvailable(projectRoot) {
const hasUpdate = await latest(projectRoot);
if (hasUpdate) {
(0, _printNewRelease.default)(hasUpdate.name, hasUpdate.upgrade, hasUpdate.current);
}
}
/**
* Finds the latest stables version of React Native > current version
*/
async function latest(projectRoot) {
try {
const currentVersion = getReactNativeVersion(projectRoot);
if (!currentVersion) {
return;
}
const {
name
} = require(_path().default.join(projectRoot, 'package.json'));
const latestRelease = await (0, _getLatestRelease.default)(name, currentVersion);
if (latestRelease) {
return {
name,
current: currentVersion,
upgrade: latestRelease
};
}
} catch (e) {
// We let the flow continue as this component is not vital for the rest of
// the CLI.
_logger.default.debug('Cannot detect current version of React Native, ' + 'skipping check for a newer release');
_logger.default.debug(e);
}
return undefined;
}
/**
* Gets the current project's version parsed as Semver
*/
function current(projectRoot) {
try {
const found = _semver().default.parse(getReactNativeVersion(projectRoot));
if (found) {
return found;
}
} catch {
throw new _errors.UnknownProjectError(projectRoot);
}
return undefined;
}
//# sourceMappingURL=index.ts.map