ui-thing
Version:
CLI used to add Nuxt 3 components to a project
39 lines (33 loc) • 1.38 kB
text/typescript
import { Command } from "commander";
import prompts from "prompts";
import { addShortcutFiles } from "../utils/addShortcutFiles";
import { addModuleToConfig, getNuxtConfig, updateConfig } from "../utils/config";
import { PACKAGE_MANAGER_CHOICES } from "../utils/constants";
import { installPackages } from "../utils/installPackages";
import { printFancyBoxMessage } from "../utils/printFancyBoxMessage";
export const addShortcuts = new Command()
.command("shortcuts")
.name("shortcuts")
.description("Add the defineShortcuts & useShortcuts composables to your project.")
.action(async () => {
await addShortcutFiles();
// Get nuxt config
const cfg = await getNuxtConfig();
addModuleToConfig(cfg.nuxtConfig, ["@vueuse/nuxt"]);
// Write changes to nuxt config
await updateConfig(cfg.nuxtConfig, "nuxt.config.ts");
const { pkgManager } = await prompts({
name: "pkgManager",
type: "select",
message: "Which package manager are you using?",
choices: PACKAGE_MANAGER_CHOICES,
});
if (!pkgManager) return process.exit(0);
// install prettier dep
await installPackages(pkgManager, undefined, ["@vueuse/math", "@vueuse/nuxt"]);
printFancyBoxMessage(
"All Done!",
{ title: "Shortcuts Added" },
`Check the composables folder for the defineShortcuts & useShortcuts composables.`
);
});