react-native-integrate
Version:
Automate integration of additional code into React Native projects
33 lines (32 loc) • 1.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkForUpdate = checkForUpdate;
const picocolors_1 = __importDefault(require("picocolors"));
const preload_1 = __importDefault(require("semver/preload"));
const prompter_1 = require("../prompter");
const runCommand_1 = require("./runCommand");
async function checkForUpdate() {
try {
const { version: currentVersion, name,
// eslint-disable-next-line @typescript-eslint/no-require-imports
} = require('../../package.json');
if (!currentVersion)
return;
let { output: latestVersion } = await (0, runCommand_1.runCommand)(`npm view ${name} version`, { silent: true });
latestVersion = latestVersion.trim();
if (preload_1.default.gt(latestVersion, currentVersion)) {
(0, prompter_1.logWarning)('A new version is available! ' +
`Current: ${picocolors_1.default.gray(currentVersion)} | Latest: ${picocolors_1.default.green(latestVersion)}\n` +
`${picocolors_1.default.yellow('Run')} ${picocolors_1.default.blue(`npm install -g ${name}@latest`)} to update.`);
if (!(await (0, prompter_1.confirm)('would you like to continue with outdated version?'))) {
process.exit(0);
}
}
}
catch (_error) {
/* empty */
}
}