@nlabs/lex
Version:
38 lines (37 loc) • 5.43 kB
JavaScript
import { execa } from "execa";
import { LexConfig } from "../../LexConfig.js";
import { createSpinner, getPackageJson, removeConflictModules, removeModules } from "../../utils/app.js";
import { log } from "../../utils/log.js";
const migrate = async (cmd, callback = process.exit) => {
const { cliName = "Lex", packageManager: cmdPackageManager, quiet } = cmd;
const cwd = process.cwd();
const spinner = createSpinner(quiet);
spinner.start("Removing 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;
appPackage.dependencies = removeConflictModules(dependencies);
appPackage.devDependencies = removeConflictModules(devDependencies);
try {
await execa(packageManager, ["install"], {
encoding: "utf8",
stdio: "inherit"
});
spinner.succeed("Successfully migrated app!");
callback(0);
return 0;
} catch (error) {
log(`
${cliName} Error: ${error.message}`, "error", quiet);
spinner.fail("Failed to remove modules.");
callback(1);
return 1;
}
};
export {
migrate
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL21pZ3JhdGUvbWlncmF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhlY2F9IGZyb20gJ2V4ZWNhJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXIsIGdldFBhY2thZ2VKc29uLCByZW1vdmVDb25mbGljdE1vZHVsZXMsIHJlbW92ZU1vZHVsZXN9IGZyb20gJy4uLy4uL3V0aWxzL2FwcC5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNaWdyYXRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhY2thZ2VNYW5hZ2VyPzogc3RyaW5nO1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIE1pZ3JhdGVDYWxsYmFjayA9IHR5cGVvZiBwcm9jZXNzLmV4aXQ7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRlID0gYXN5bmMgKGNtZDogTWlncmF0ZU9wdGlvbnMsIGNhbGxiYWNrOiBNaWdyYXRlQ2FsbGJhY2sgPSBwcm9jZXNzLmV4aXQpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBwYWNrYWdlTWFuYWdlcjogY21kUGFja2FnZU1hbmFnZXIsIHF1aWV0fSA9IGNtZDtcblxuICBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gLy8gRGlzcGxheSBtZXNzYWdlXG4gIC8vIGxvZyhgJHtjbGlOYW1lfSBjb3B5aW5nIFwiJHt0b31cIi4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuICBzcGlubmVyLnN0YXJ0KCdSZW1vdmluZyBub2RlIG1vZHVsZXMuLi4nKTtcblxuICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gIGF3YWl0IHJlbW92ZU1vZHVsZXMoKTtcblxuICBjb25zdCB7cGFja2FnZU1hbmFnZXI6IGNvbmZpZ1BhY2thZ2VNYW5hZ2VyfSA9IExleENvbmZpZy5jb25maWc7XG4gIGNvbnN0IHBhY2thZ2VNYW5hZ2VyOiBzdHJpbmcgPSBjbWRQYWNrYWdlTWFuYWdlciB8fCBjb25maWdQYWNrYWdlTWFuYWdlciB8fCAnJztcbiAgY29uc3QgcGFja2FnZVBhdGg6IHN0cmluZyA9IGAke2N3ZH0vcGFja2FnZS5qc29uYDtcbiAgY29uc3QgYXBwUGFja2FnZSA9IGdldFBhY2thZ2VKc29uKHBhY2thZ2VQYXRoKTtcbiAgY29uc3Qge2RlcGVuZGVuY2llcyA9IHt9LCBkZXZEZXBlbmRlbmNpZXMgPSB7fX0gPSBhcHBQYWNrYWdlO1xuXG4gIC8vIFJlbW92ZSBFU0J1aWxkLCBKZXN0IGFuZCBXZWJwYWNrIGZyb20gYXBwIHNpbmNlIGl0IHdpbGwgY29uZmxpY3RcbiAgYXBwUGFja2FnZS5kZXBlbmRlbmNpZXMgPSByZW1vdmVDb25mbGljdE1vZHVsZXMoZGVwZW5kZW5jaWVzKTtcbiAgYXBwUGFja2FnZS5kZXZEZXBlbmRlbmNpZXMgPSByZW1vdmVDb25mbGljdE1vZHVsZXMoZGV2RGVwZW5kZW5jaWVzKTtcblxuICAvLyBJbnN0YWxsIG5ldyBsaXN0IG9mIHBhY2thZ2VzXG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY2EocGFja2FnZU1hbmFnZXIsIFsnaW5zdGFsbCddLCB7XG4gICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgIH0pO1xuXG4gICAgLy8gU3RvcCBsb2FkZXJcbiAgICBzcGlubmVyLnN1Y2NlZWQoJ1N1Y2Nlc3NmdWxseSBtaWdyYXRlZCBhcHAhJyk7XG5cbiAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICBjYWxsYmFjaygwKTtcbiAgICByZXR1cm4gMDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byByZW1vdmUgbW9kdWxlcy4nKTtcblxuICAgIC8vIEtpbGwgcHJvY2Vzc1xuICAgIGNhbGxiYWNrKDEpO1xuICAgIHJldHVybiAxO1xuICB9XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLFNBQVEsYUFBWTtBQUVwQixTQUFRLGlCQUFnQjtBQUN4QixTQUFRLGVBQWUsZ0JBQWdCLHVCQUF1QixxQkFBb0I7QUFDbEYsU0FBUSxXQUFVO0FBVVgsTUFBTSxVQUFVLE9BQU8sS0FBcUIsV0FBNEIsUUFBUSxTQUEwQjtBQUMvRyxRQUFNLEVBQUMsVUFBVSxPQUFPLGdCQUFnQixtQkFBbUIsTUFBSyxJQUFJO0FBRXBFLFFBQU0sTUFBYyxRQUFRLElBQUk7QUFNaEMsUUFBTSxVQUFVLGNBQWMsS0FBSztBQUNuQyxVQUFRLE1BQU0sMEJBQTBCO0FBR3hDLFFBQU0sY0FBYztBQUVwQixRQUFNLEVBQUMsZ0JBQWdCLHFCQUFvQixJQUFJLFVBQVU7QUFDekQsUUFBTSxpQkFBeUIscUJBQXFCLHdCQUF3QjtBQUM1RSxRQUFNLGNBQXNCLEdBQUcsR0FBRztBQUNsQyxRQUFNLGFBQWEsZUFBZSxXQUFXO0FBQzdDLFFBQU0sRUFBQyxlQUFlLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxFQUFDLElBQUk7QUFHbEQsYUFBVyxlQUFlLHNCQUFzQixZQUFZO0FBQzVELGFBQVcsa0JBQWtCLHNCQUFzQixlQUFlO0FBR2xFLE1BQUk7QUFDRixVQUFNLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxHQUFHO0FBQUEsTUFDdkMsVUFBVTtBQUFBLE1BQ1YsT0FBTztBQUFBLElBQ1QsQ0FBQztBQUdELFlBQVEsUUFBUSw0QkFBNEI7QUFHNUMsYUFBUyxDQUFDO0FBQ1YsV0FBTztBQUFBLEVBQ1QsU0FBUyxPQUFPO0FBRWQsUUFBSTtBQUFBLEVBQUssT0FBTyxXQUFXLE1BQU0sT0FBTyxJQUFJLFNBQVMsS0FBSztBQUcxRCxZQUFRLEtBQUssMkJBQTJCO0FBR3hDLGFBQVMsQ0FBQztBQUNWLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==