@react-native-community/cli-tools
Advanced tools
Comparing version 12.0.0-alpha.3 to 12.0.0-alpha.4
@@ -13,3 +13,3 @@ /** | ||
} | ||
export declare const inlineString: (str: string) => string; | ||
export declare const inlineString: (str?: string) => string; | ||
//# sourceMappingURL=errors.d.ts.map |
@@ -31,5 +31,5 @@ "use strict"; | ||
exports.UnknownProjectError = UnknownProjectError; | ||
const inlineString = str => str.replace(/(\s{2,})/gm, ' ').trim(); | ||
const inlineString = (str = '') => str.replace(/(\s{2,})/gm, ' ').trim(); | ||
exports.inlineString = inlineString; | ||
//# sourceMappingURL=errors.ts.map |
@@ -10,2 +10,3 @@ declare const _default: { | ||
isVerbose: () => boolean; | ||
hasDebugMessages: () => boolean; | ||
disable: () => void; | ||
@@ -12,0 +13,0 @@ enable: () => void; |
@@ -18,2 +18,3 @@ "use strict"; | ||
let disabled = false; | ||
let hidden = false; | ||
const formatMessages = messages => _chalk().default.reset(messages.join(SEPARATOR)); | ||
@@ -43,2 +44,4 @@ const success = (...messages) => { | ||
console.log(`${_chalk().default.gray.bold('debug')} ${formatMessages(messages)}`); | ||
} else { | ||
hidden = true; | ||
} | ||
@@ -61,2 +64,3 @@ }; | ||
}; | ||
const hasDebugMessages = () => hidden; | ||
var _default = { | ||
@@ -71,2 +75,3 @@ success, | ||
isVerbose, | ||
hasDebugMessages, | ||
disable, | ||
@@ -73,0 +78,0 @@ enable |
export type Release = { | ||
version: string; | ||
stable: string; | ||
candidate?: string; | ||
changelogUrl: string; | ||
@@ -4,0 +5,0 @@ diffUrl: string; |
@@ -18,2 +18,7 @@ "use strict"; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function isDiffPurgeEntry(data) { | ||
var _data$commit, _data$commit2; | ||
return [data.name, data.zipball_url, data.tarball_url, (_data$commit = data.commit) === null || _data$commit === void 0 ? void 0 : _data$commit.sha, (_data$commit2 = data.commit) === null || _data$commit2 === void 0 ? void 0 : _data$commit2.url, data.node_id].indexOf(false) === -1; | ||
} | ||
/** | ||
@@ -49,9 +54,13 @@ * Checks via GitHub API if there is a newer stable React Native release and, | ||
const eTag = _releaseCacheManager.default.get(name, 'eTag'); | ||
const latestVersion = await getLatestRnDiffPurgeVersion(name, eTag); | ||
_logger.default.debug(`Latest release: ${latestVersion}`); | ||
if (_semver().default.compare(latestVersion, currentVersion) === 1 && !_semver().default.prerelease(latestVersion)) { | ||
const { | ||
stable, | ||
candidate | ||
} = await getLatestRnDiffPurgeVersion(name, eTag); | ||
_logger.default.debug(`Latest release: ${stable} (${candidate})`); | ||
if (_semver().default.compare(stable, currentVersion) >= 0) { | ||
return { | ||
version: latestVersion, | ||
changelogUrl: buildChangelogUrl(latestVersion), | ||
diffUrl: buildDiffUrl(currentVersion) | ||
stable, | ||
candidate, | ||
changelogUrl: buildChangelogUrl(stable), | ||
diffUrl: buildDiffUrl(stable) | ||
}; | ||
@@ -71,3 +80,2 @@ } | ||
} | ||
/** | ||
@@ -91,16 +99,28 @@ * Returns the most recent React Native version available to upgrade to. | ||
} = await (0, _fetch.fetch)('https://api.github.com/repos/react-native-community/rn-diff-purge/tags', options); | ||
const result = { | ||
stable: '0.0.0' | ||
}; | ||
// Remote is newer. | ||
if (status === 200) { | ||
const body = data; | ||
const latestVersion = body[0].name.substring(8); | ||
const body = data.filter(isDiffPurgeEntry); | ||
const eTagHeader = headers.get('eTag'); | ||
// Update cache only if newer release is stable. | ||
if (!_semver().default.prerelease(latestVersion) && eTagHeader) { | ||
_logger.default.debug(`Saving ${eTagHeader} to cache`); | ||
_releaseCacheManager.default.set(name, 'eTag', eTagHeader); | ||
_releaseCacheManager.default.set(name, 'latestVersion', latestVersion); | ||
for (let { | ||
name: version | ||
} of body) { | ||
if (!result.candidate && version.includes('-rc')) { | ||
result.candidate = version.substring(8); | ||
continue; | ||
} | ||
if (!version.includes('-rc')) { | ||
result.stable = version.substring(8); | ||
if (eTagHeader) { | ||
_logger.default.debug(`Saving ${eTagHeader} to cache`); | ||
_releaseCacheManager.default.set(name, 'eTag', eTagHeader); | ||
_releaseCacheManager.default.set(name, 'latestVersion', result.stable); | ||
} | ||
return result; | ||
} | ||
} | ||
return latestVersion; | ||
return result; | ||
} | ||
@@ -110,12 +130,9 @@ | ||
if (status === 304) { | ||
const latestVersion = _releaseCacheManager.default.get(name, 'latestVersion'); | ||
if (latestVersion) { | ||
return latestVersion; | ||
} | ||
result.stable = _releaseCacheManager.default.get(name, 'latestVersion') ?? result.stable; | ||
} | ||
// Should be returned only if something went wrong. | ||
return '0.0.0'; | ||
return result; | ||
} | ||
//# sourceMappingURL=getLatestRelease.ts.map |
@@ -8,3 +8,3 @@ import { SemVer } from 'semver'; | ||
type Update = { | ||
upgrade: Release; | ||
upgrade?: Release; | ||
current: string; | ||
@@ -11,0 +11,0 @@ name: string; |
@@ -38,6 +38,9 @@ "use strict"; | ||
async function logIfUpdateAvailable(projectRoot) { | ||
const hasUpdate = await latest(projectRoot); | ||
if (hasUpdate) { | ||
(0, _printNewRelease.default)(hasUpdate.name, hasUpdate.upgrade, hasUpdate.current); | ||
const versions = await latest(projectRoot); | ||
if (!(versions === null || versions === void 0 ? void 0 : versions.upgrade)) { | ||
return; | ||
} | ||
if (_semver().default.gt(versions.upgrade.stable, versions.current)) { | ||
(0, _printNewRelease.default)(versions.name, versions.upgrade, versions.current); | ||
} | ||
} | ||
@@ -56,8 +59,8 @@ /** | ||
} = require(_path().default.join(projectRoot, 'package.json')); | ||
const latestRelease = await (0, _getLatestRelease.default)(name, currentVersion); | ||
if (latestRelease) { | ||
const upgrade = await (0, _getLatestRelease.default)(name, currentVersion); | ||
if (upgrade) { | ||
return { | ||
name, | ||
current: currentVersion, | ||
upgrade: latestRelease | ||
upgrade | ||
}; | ||
@@ -71,3 +74,3 @@ } | ||
} | ||
return undefined; | ||
return; | ||
} | ||
@@ -74,0 +77,0 @@ |
@@ -24,3 +24,3 @@ "use strict"; | ||
function printNewRelease(name, latestRelease, currentVersion) { | ||
_logger.default.info(`React Native v${latestRelease.version} is now available (your project is running on v${currentVersion}).`); | ||
_logger.default.info(`React Native v${latestRelease.stable} is now available (your project is running on v${currentVersion}).`); | ||
_logger.default.info(`Changelog: ${_chalk().default.dim.underline(latestRelease.changelogUrl)}`); | ||
@@ -27,0 +27,0 @@ _logger.default.info(`Diff: ${_chalk().default.dim.underline(latestRelease.diffUrl)}`); |
{ | ||
"name": "@react-native-community/cli-tools", | ||
"version": "12.0.0-alpha.3", | ||
"version": "12.0.0-alpha.4", | ||
"license": "MIT", | ||
@@ -21,3 +21,3 @@ "main": "build/index.js", | ||
"devDependencies": { | ||
"@react-native-community/cli-types": "12.0.0-alpha.3", | ||
"@react-native-community/cli-types": "12.0.0-alpha.4", | ||
"@types/lodash": "^4.14.149", | ||
@@ -40,3 +40,3 @@ "@types/mime": "^2.0.1", | ||
}, | ||
"gitHead": "8d8d6384ce8ae5c2d967fb2f9ac528ddf4da7279" | ||
"gitHead": "bd0963dbe23b079b50dd2b07f80f305b3bc92f3a" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
158354
1739
5