UNPKG

@nlabs/lex

Version:
54 lines (53 loc) 7.42 kB
import { compareVersions } from 'compare-versions'; import { execa } from 'execa'; import { readFileSync } from 'fs'; import latestVersion from 'latest-version'; import { LexConfig } from '../../LexConfig.js'; import { createSpinner } from '../../utils/app.js'; import { getLexPackageJsonPath } from '../../utils/file.js'; import { log } from '../../utils/log.js'; import { parseVersion } from '../versions/versions.js'; const packagePath = getLexPackageJsonPath(); const packageJson = JSON.parse(readFileSync(packagePath, 'utf8')); export const upgrade = async (cmd, callback = process.exit)=>{ const { cliName = 'Lex', cliPackage = '@nlabs/lex', quiet } = cmd; // Display status log(`Upgrading ${cliName}...`, 'info', quiet); // Spinner const spinner = createSpinner(quiet); // Get custom configuration await LexConfig.parseConfig(cmd); return latestVersion('@nlabs/lex').then(async (latest)=>{ const current = parseVersion(packageJson.version); const versionDiff = compareVersions(latest, current); if (versionDiff === 0) { log(`\nCurrently up-to-date. Version ${latest} is the latest.`, 'note', quiet); callback(0); return 0; } log(`\nCurrently out of date. Upgrading from version ${current} to ${latest}...`, 'note', quiet); const upgradeOptions = [ 'install', '-g', `${cliPackage}@latest` ]; await execa('npm', upgradeOptions, { encoding: 'utf8', stdio: 'inherit' }); // Stop loader spinner.succeed(`Successfully updated ${cliName}!`); // Stop process callback(0); return 0; }).catch((error)=>{ // Display error message log(`\n${cliName} Error: ${error.message}`, 'error', quiet); // Stop spinner spinner.fail('Failed to updated packages.'); // Kill process callback(1); return 1; }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy91cGdyYWRlL3VwZ3JhZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21wYXJlVmVyc2lvbnN9IGZyb20gJ2NvbXBhcmUtdmVyc2lvbnMnO1xuaW1wb3J0IHtleGVjYX0gZnJvbSAnZXhlY2EnO1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCBsYXRlc3RWZXJzaW9uIGZyb20gJ2xhdGVzdC12ZXJzaW9uJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2FwcC5qcyc7XG5pbXBvcnQge2dldExleFBhY2thZ2VKc29uUGF0aH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcbmltcG9ydCB7cGFyc2VWZXJzaW9ufSBmcm9tICcuLi92ZXJzaW9ucy92ZXJzaW9ucy5qcyc7XG5cbmNvbnN0IHBhY2thZ2VQYXRoID0gZ2V0TGV4UGFja2FnZUpzb25QYXRoKCk7XG5jb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhY2thZ2VQYXRoLCAndXRmOCcpKTtcblxuZXhwb3J0IGludGVyZmFjZSBVcGdyYWRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaVBhY2thZ2U/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgVXBncmFkZUNhbGxiYWNrID0gdHlwZW9mIHByb2Nlc3MuZXhpdDtcblxuZXhwb3J0IGNvbnN0IHVwZ3JhZGUgPSBhc3luYyAoY21kOiBVcGdyYWRlT3B0aW9ucywgY2FsbGJhY2s6IFVwZ3JhZGVDYWxsYmFjayA9IHByb2Nlc3MuZXhpdCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGNsaVBhY2thZ2UgPSAnQG5sYWJzL2xleCcsIHF1aWV0fSA9IGNtZDtcblxuICAvLyBEaXNwbGF5IHN0YXR1c1xuICBsb2coYFVwZ3JhZGluZyAke2NsaU5hbWV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgLy8gU3Bpbm5lclxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuXG4gIHJldHVybiBsYXRlc3RWZXJzaW9uKCdAbmxhYnMvbGV4JylcbiAgICAudGhlbihhc3luYyAobGF0ZXN0OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IHN0cmluZyA9IHBhcnNlVmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKTtcbiAgICAgIGNvbnN0IHZlcnNpb25EaWZmOiBudW1iZXIgPSBjb21wYXJlVmVyc2lvbnMobGF0ZXN0LCBjdXJyZW50KTtcblxuICAgICAgaWYodmVyc2lvbkRpZmYgPT09IDApIHtcbiAgICAgICAgbG9nKGBcXG5DdXJyZW50bHkgdXAtdG8tZGF0ZS4gVmVyc2lvbiAke2xhdGVzdH0gaXMgdGhlIGxhdGVzdC5gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgICAgY2FsbGJhY2soMCk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICBsb2coYFxcbkN1cnJlbnRseSBvdXQgb2YgZGF0ZS4gVXBncmFkaW5nIGZyb20gdmVyc2lvbiAke2N1cnJlbnR9IHRvICR7bGF0ZXN0fS4uLmAsICdub3RlJywgcXVpZXQpO1xuXG4gICAgICBjb25zdCB1cGdyYWRlT3B0aW9uczogc3RyaW5nW10gPSBbJ2luc3RhbGwnLCAnLWcnLCBgJHtjbGlQYWNrYWdlfUBsYXRlc3RgXTtcblxuICAgICAgYXdhaXQgZXhlY2EoJ25wbScsIHVwZ3JhZGVPcHRpb25zLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTdG9wIGxvYWRlclxuICAgICAgc3Bpbm5lci5zdWNjZWVkKGBTdWNjZXNzZnVsbHkgdXBkYXRlZCAke2NsaU5hbWV9IWApO1xuXG4gICAgICAvLyBTdG9wIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDApO1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byB1cGRhdGVkIHBhY2thZ2VzLicpO1xuXG4gICAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSk7XG59OyJdLCJuYW1lcyI6WyJjb21wYXJlVmVyc2lvbnMiLCJleGVjYSIsInJlYWRGaWxlU3luYyIsImxhdGVzdFZlcnNpb24iLCJMZXhDb25maWciLCJjcmVhdGVTcGlubmVyIiwiZ2V0TGV4UGFja2FnZUpzb25QYXRoIiwibG9nIiwicGFyc2VWZXJzaW9uIiwicGFja2FnZVBhdGgiLCJwYWNrYWdlSnNvbiIsIkpTT04iLCJwYXJzZSIsInVwZ3JhZGUiLCJjbWQiLCJjYWxsYmFjayIsInByb2Nlc3MiLCJleGl0IiwiY2xpTmFtZSIsImNsaVBhY2thZ2UiLCJxdWlldCIsInNwaW5uZXIiLCJwYXJzZUNvbmZpZyIsInRoZW4iLCJsYXRlc3QiLCJjdXJyZW50IiwidmVyc2lvbiIsInZlcnNpb25EaWZmIiwidXBncmFkZU9wdGlvbnMiLCJlbmNvZGluZyIsInN0ZGlvIiwic3VjY2VlZCIsImNhdGNoIiwiZXJyb3IiLCJtZXNzYWdlIiwiZmFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsZUFBZSxRQUFPLG1CQUFtQjtBQUNqRCxTQUFRQyxLQUFLLFFBQU8sUUFBUTtBQUM1QixTQUFRQyxZQUFZLFFBQU8sS0FBSztBQUNoQyxPQUFPQyxtQkFBbUIsaUJBQWlCO0FBRTNDLFNBQVFDLFNBQVMsUUFBTyxxQkFBcUI7QUFDN0MsU0FBUUMsYUFBYSxRQUFPLHFCQUFxQjtBQUNqRCxTQUFRQyxxQkFBcUIsUUFBTyxzQkFBc0I7QUFDMUQsU0FBUUMsR0FBRyxRQUFPLHFCQUFxQjtBQUN2QyxTQUFRQyxZQUFZLFFBQU8sMEJBQTBCO0FBRXJELE1BQU1DLGNBQWNIO0FBQ3BCLE1BQU1JLGNBQWNDLEtBQUtDLEtBQUssQ0FBQ1YsYUFBYU8sYUFBYTtBQVV6RCxPQUFPLE1BQU1JLFVBQVUsT0FBT0MsS0FBcUJDLFdBQTRCQyxRQUFRQyxJQUFJO0lBQ3pGLE1BQU0sRUFBQ0MsVUFBVSxLQUFLLEVBQUVDLGFBQWEsWUFBWSxFQUFFQyxLQUFLLEVBQUMsR0FBR047SUFFNUQsaUJBQWlCO0lBQ2pCUCxJQUFJLENBQUMsVUFBVSxFQUFFVyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVFFO0lBRXZDLFVBQVU7SUFDVixNQUFNQyxVQUFVaEIsY0FBY2U7SUFFOUIsMkJBQTJCO0lBQzNCLE1BQU1oQixVQUFVa0IsV0FBVyxDQUFDUjtJQUU1QixPQUFPWCxjQUFjLGNBQ2xCb0IsSUFBSSxDQUFDLE9BQU9DO1FBQ1gsTUFBTUMsVUFBa0JqQixhQUFhRSxZQUFZZ0IsT0FBTztRQUN4RCxNQUFNQyxjQUFzQjNCLGdCQUFnQndCLFFBQVFDO1FBRXBELElBQUdFLGdCQUFnQixHQUFHO1lBQ3BCcEIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFaUIsT0FBTyxlQUFlLENBQUMsRUFBRSxRQUFRSjtZQUN4RUwsU0FBUztZQUNULE9BQU87UUFDVDtRQUVBUixJQUFJLENBQUMsZ0RBQWdELEVBQUVrQixRQUFRLElBQUksRUFBRUQsT0FBTyxHQUFHLENBQUMsRUFBRSxRQUFRSjtRQUUxRixNQUFNUSxpQkFBMkI7WUFBQztZQUFXO1lBQU0sR0FBR1QsV0FBVyxPQUFPLENBQUM7U0FBQztRQUUxRSxNQUFNbEIsTUFBTSxPQUFPMkIsZ0JBQWdCO1lBQ2pDQyxVQUFVO1lBQ1ZDLE9BQU87UUFDVDtRQUVBLGNBQWM7UUFDZFQsUUFBUVUsT0FBTyxDQUFDLENBQUMscUJBQXFCLEVBQUViLFFBQVEsQ0FBQyxDQUFDO1FBRWxELGVBQWU7UUFDZkgsU0FBUztRQUNULE9BQU87SUFDVCxHQUNDaUIsS0FBSyxDQUFDLENBQUNDO1FBQ04sd0JBQXdCO1FBQ3hCMUIsSUFBSSxDQUFDLEVBQUUsRUFBRVcsUUFBUSxRQUFRLEVBQUVlLE1BQU1DLE9BQU8sRUFBRSxFQUFFLFNBQVNkO1FBRXJELGVBQWU7UUFDZkMsUUFBUWMsSUFBSSxDQUFDO1FBRWIsZUFBZTtRQUNmcEIsU0FBUztRQUNULE9BQU87SUFDVDtBQUNKLEVBQUUifQ==