ui-thing
Version:
CLI used to add Nuxt components to a project
36 lines (31 loc) • 1.07 kB
text/typescript
import prompts from "prompts";
import { installPackages } from "./installPackages";
import { logger } from "./logger";
export const installValidator = async (packageManager: string) => {
const validatorPackages = {
yup: ["yup", "@vee-validate/yup"],
zod: ["zod", "@vee-validate/zod"],
joi: ["joi", "@vee-validate/joi"],
valibot: ["valibot", "@vee-validate/valibot"],
};
const { validator }: { validator: keyof typeof validatorPackages } = await prompts({
type: "select",
name: "validator",
message: "Choose the validator package to use with Vee Validate: ",
choices: [
{ title: "Yup", value: "yup" },
{ title: "Zod", value: "zod" },
{ title: "Joi", value: "joi" },
{ title: "Valibot", value: "valibot" },
],
});
if (!validator) {
logger.warn("No validator package selected");
return;
}
logger.info(`Selected ${validator} as the validator package`);
if (validatorPackages[validator]) {
await installPackages(packageManager, validatorPackages[validator]);
}
return validator;
};