import chalk from 'chalk';
import { execSync } from 'child_process';

import { PackageManager } from '../types/packageManager';

export function installDependencies(packageManager: PackageManager): void {
    const installCmdProd = {
        pnpm: 'pnpm add',
        npm: 'npm install',
    }[packageManager];

    console.log(chalk.blue('Installing production dependencies...'));
    execSync(`${installCmdProd} motion zod react-hook-form react-icons`, {
        stdio: 'inherit',
    });
}

export function installDevDependencies(
    packageManager: PackageManager,
    useEslint: boolean,
    useChromatic: boolean,
    useStorybook: boolean,
    usePrettier: boolean,
): void {
    const installCmd = {
        pnpm: 'pnpm add -D',
        npm: 'npm install --save-dev',
    }[packageManager];

    console.log(chalk.blue('Installing dev dependencies...'));
    execSync(
        `${installCmd} ${useEslint && '@eslint/js'} ${useChromatic && 'chromatic'} ${useStorybook && '@storybook/theming'} ${usePrettier && 'prettier prettier-plugin-tailwindcss'}`,
        { stdio: 'inherit' },
    );
}
