UNPKG

@nlabs/lex

Version:
50 lines (49 loc) 6.86 kB
/** * Copyright (c) 2018-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ import { execa } from 'execa'; import { LexConfig } from '../../LexConfig.js'; import { createSpinner, getPackageJson, removeConflictModules, removeModules } from '../../utils/app.js'; import { log } from '../../utils/log.js'; export const migrate = async (cmd, callback = process.exit)=>{ const { cliName = 'Lex', packageManager: cmdPackageManager, quiet } = cmd; const cwd = process.cwd(); // // Display message // log(`${cliName} copying "${to}"...`, 'info', quiet); // Spinner const spinner = createSpinner(quiet); spinner.start('Removing node modules...'); // Remove node_modules await removeModules(); const { packageManager: configPackageManager } = LexConfig.config; const packageManager = cmdPackageManager || configPackageManager || ''; const packagePath = `${cwd}/package.json`; const appPackage = getPackageJson(packagePath); const { dependencies = {}, devDependencies = {} } = appPackage; // Remove ESBuild, Jest and Webpack from app since it will conflict appPackage.dependencies = removeConflictModules(dependencies); appPackage.devDependencies = removeConflictModules(devDependencies); // Install new list of packages try { await execa(packageManager, [ 'install' ], { encoding: 'utf8', stdio: 'inherit' }); // Stop loader spinner.succeed('Successfully migrated app!'); // Kill process callback(0); return 0; } catch (error) { // Display error message log(`\n${cliName} Error: ${error.message}`, 'error', quiet); // Stop spinner spinner.fail('Failed to remove modules.'); // Kill process callback(1); return 1; } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9taWdyYXRlL21pZ3JhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhlY2F9IGZyb20gJ2V4ZWNhJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXIsIGdldFBhY2thZ2VKc29uLCByZW1vdmVDb25mbGljdE1vZHVsZXMsIHJlbW92ZU1vZHVsZXN9IGZyb20gJy4uLy4uL3V0aWxzL2FwcC5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNaWdyYXRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhY2thZ2VNYW5hZ2VyPzogc3RyaW5nO1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIE1pZ3JhdGVDYWxsYmFjayA9IHR5cGVvZiBwcm9jZXNzLmV4aXQ7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRlID0gYXN5bmMgKGNtZDogTWlncmF0ZU9wdGlvbnMsIGNhbGxiYWNrOiBNaWdyYXRlQ2FsbGJhY2sgPSBwcm9jZXNzLmV4aXQpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBwYWNrYWdlTWFuYWdlcjogY21kUGFja2FnZU1hbmFnZXIsIHF1aWV0fSA9IGNtZDtcblxuICBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gLy8gRGlzcGxheSBtZXNzYWdlXG4gIC8vIGxvZyhgJHtjbGlOYW1lfSBjb3B5aW5nIFwiJHt0b31cIi4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuICBzcGlubmVyLnN0YXJ0KCdSZW1vdmluZyBub2RlIG1vZHVsZXMuLi4nKTtcblxuICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gIGF3YWl0IHJlbW92ZU1vZHVsZXMoKTtcblxuICBjb25zdCB7cGFja2FnZU1hbmFnZXI6IGNvbmZpZ1BhY2thZ2VNYW5hZ2VyfSA9IExleENvbmZpZy5jb25maWc7XG4gIGNvbnN0IHBhY2thZ2VNYW5hZ2VyOiBzdHJpbmcgPSBjbWRQYWNrYWdlTWFuYWdlciB8fCBjb25maWdQYWNrYWdlTWFuYWdlciB8fCAnJztcbiAgY29uc3QgcGFja2FnZVBhdGg6IHN0cmluZyA9IGAke2N3ZH0vcGFja2FnZS5qc29uYDtcbiAgY29uc3QgYXBwUGFja2FnZSA9IGdldFBhY2thZ2VKc29uKHBhY2thZ2VQYXRoKTtcbiAgY29uc3Qge2RlcGVuZGVuY2llcyA9IHt9LCBkZXZEZXBlbmRlbmNpZXMgPSB7fX0gPSBhcHBQYWNrYWdlO1xuXG4gIC8vIFJlbW92ZSBFU0J1aWxkLCBKZXN0IGFuZCBXZWJwYWNrIGZyb20gYXBwIHNpbmNlIGl0IHdpbGwgY29uZmxpY3RcbiAgYXBwUGFja2FnZS5kZXBlbmRlbmNpZXMgPSByZW1vdmVDb25mbGljdE1vZHVsZXMoZGVwZW5kZW5jaWVzKTtcbiAgYXBwUGFja2FnZS5kZXZEZXBlbmRlbmNpZXMgPSByZW1vdmVDb25mbGljdE1vZHVsZXMoZGV2RGVwZW5kZW5jaWVzKTtcblxuICAvLyBJbnN0YWxsIG5ldyBsaXN0IG9mIHBhY2thZ2VzXG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY2EocGFja2FnZU1hbmFnZXIsIFsnaW5zdGFsbCddLCB7XG4gICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgIH0pO1xuXG4gICAgLy8gU3RvcCBsb2FkZXJcbiAgICBzcGlubmVyLnN1Y2NlZWQoJ1N1Y2Nlc3NmdWxseSBtaWdyYXRlZCBhcHAhJyk7XG5cbiAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICBjYWxsYmFjaygwKTtcbiAgICByZXR1cm4gMDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIC8vIERpc3BsYXkgZXJyb3IgbWVzc2FnZVxuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgIHNwaW5uZXIuZmFpbCgnRmFpbGVkIHRvIHJlbW92ZSBtb2R1bGVzLicpO1xuXG4gICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cbn07Il0sIm5hbWVzIjpbImV4ZWNhIiwiTGV4Q29uZmlnIiwiY3JlYXRlU3Bpbm5lciIsImdldFBhY2thZ2VKc29uIiwicmVtb3ZlQ29uZmxpY3RNb2R1bGVzIiwicmVtb3ZlTW9kdWxlcyIsImxvZyIsIm1pZ3JhdGUiLCJjbWQiLCJjYWxsYmFjayIsInByb2Nlc3MiLCJleGl0IiwiY2xpTmFtZSIsInBhY2thZ2VNYW5hZ2VyIiwiY21kUGFja2FnZU1hbmFnZXIiLCJxdWlldCIsImN3ZCIsInNwaW5uZXIiLCJzdGFydCIsImNvbmZpZ1BhY2thZ2VNYW5hZ2VyIiwiY29uZmlnIiwicGFja2FnZVBhdGgiLCJhcHBQYWNrYWdlIiwiZGVwZW5kZW5jaWVzIiwiZGV2RGVwZW5kZW5jaWVzIiwiZW5jb2RpbmciLCJzdGRpbyIsInN1Y2NlZWQiLCJlcnJvciIsIm1lc3NhZ2UiLCJmYWlsIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxLQUFLLFFBQU8sUUFBUTtBQUU1QixTQUFRQyxTQUFTLFFBQU8scUJBQXFCO0FBQzdDLFNBQVFDLGFBQWEsRUFBRUMsY0FBYyxFQUFFQyxxQkFBcUIsRUFBRUMsYUFBYSxRQUFPLHFCQUFxQjtBQUN2RyxTQUFRQyxHQUFHLFFBQU8scUJBQXFCO0FBVXZDLE9BQU8sTUFBTUMsVUFBVSxPQUFPQyxLQUFxQkMsV0FBNEJDLFFBQVFDLElBQUk7SUFDekYsTUFBTSxFQUFDQyxVQUFVLEtBQUssRUFBRUMsZ0JBQWdCQyxpQkFBaUIsRUFBRUMsS0FBSyxFQUFDLEdBQUdQO0lBRXBFLE1BQU1RLE1BQWNOLFFBQVFNLEdBQUc7SUFFL0IscUJBQXFCO0lBQ3JCLHVEQUF1RDtJQUV2RCxVQUFVO0lBQ1YsTUFBTUMsVUFBVWYsY0FBY2E7SUFDOUJFLFFBQVFDLEtBQUssQ0FBQztJQUVkLHNCQUFzQjtJQUN0QixNQUFNYjtJQUVOLE1BQU0sRUFBQ1EsZ0JBQWdCTSxvQkFBb0IsRUFBQyxHQUFHbEIsVUFBVW1CLE1BQU07SUFDL0QsTUFBTVAsaUJBQXlCQyxxQkFBcUJLLHdCQUF3QjtJQUM1RSxNQUFNRSxjQUFzQixHQUFHTCxJQUFJLGFBQWEsQ0FBQztJQUNqRCxNQUFNTSxhQUFhbkIsZUFBZWtCO0lBQ2xDLE1BQU0sRUFBQ0UsZUFBZSxDQUFDLENBQUMsRUFBRUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFDLEdBQUdGO0lBRWxELG1FQUFtRTtJQUNuRUEsV0FBV0MsWUFBWSxHQUFHbkIsc0JBQXNCbUI7SUFDaERELFdBQVdFLGVBQWUsR0FBR3BCLHNCQUFzQm9CO0lBRW5ELCtCQUErQjtJQUMvQixJQUFJO1FBQ0YsTUFBTXhCLE1BQU1hLGdCQUFnQjtZQUFDO1NBQVUsRUFBRTtZQUN2Q1ksVUFBVTtZQUNWQyxPQUFPO1FBQ1Q7UUFFQSxjQUFjO1FBQ2RULFFBQVFVLE9BQU8sQ0FBQztRQUVoQixlQUFlO1FBQ2ZsQixTQUFTO1FBQ1QsT0FBTztJQUNULEVBQUUsT0FBTW1CLE9BQU87UUFDYix3QkFBd0I7UUFDeEJ0QixJQUFJLENBQUMsRUFBRSxFQUFFTSxRQUFRLFFBQVEsRUFBRWdCLE1BQU1DLE9BQU8sRUFBRSxFQUFFLFNBQVNkO1FBRXJELGVBQWU7UUFDZkUsUUFBUWEsSUFBSSxDQUFDO1FBRWIsZUFBZTtRQUNmckIsU0FBUztRQUNULE9BQU87SUFDVDtBQUNGLEVBQUUifQ==