import { ProjectOptions } from '../utils/prompts'; export function generateAppComponent(options: ProjectOptions): string { const ext = options.language === 'TypeScript' ? 'tsx' : 'jsx'; switch (options.framework) { case 'Next.js': // Next.js app/page.tsx return `export default function Home() { return (

Welcome to ${options.projectName}

); } `; case 'Astro': return `--- --- ${options.projectName}

Welcome to ${options.projectName}

`; case 'React': return `function App() { return (

Welcome to ${options.projectName}

Get started by editing src/App.${ext}

); } export default App; `; case 'Vue': { const lang = options.language === 'TypeScript' ? 'ts' : 'js'; return ` `; } default: return ''; } } export function generateNextLayout(options: ProjectOptions): string { let cssImport = ''; switch (options.cssTool) { case 'Tailwind CSS': cssImport = "import './globals.css'"; break; case 'SCSS': case 'CSS': default: break; } const isTypeScript = options.language === 'TypeScript'; const typeAnnotation = isTypeScript ? `: { children: React.ReactNode }` : ''; return `export const metadata = { title: '${options.projectName}', description: 'Generated by chi CLI', } ${cssImport ? cssImport + '\n' : ''}export default function RootLayout({ children }${typeAnnotation}) { return ( {children} ) } `; }