mirror of
https://github.com/johndoe6345789/low-code-react-app-b.git
synced 2026-04-26 14:44:55 +00:00
100 lines
2.2 KiB
TypeScript
100 lines
2.2 KiB
TypeScript
import { ComponentNode, PrismaModel, ThemeConfig } from '@/types/project'
|
|
import { generateMUITheme } from './generateMUITheme'
|
|
import { generatePrismaSchema } from './generatePrismaSchema'
|
|
|
|
export function generateNextJSProject(
|
|
projectName: string,
|
|
models: PrismaModel[],
|
|
components: ComponentNode[],
|
|
theme: ThemeConfig
|
|
): Record<string, string> {
|
|
const files: Record<string, string> = {}
|
|
|
|
files['package.json'] = JSON.stringify(
|
|
{
|
|
name: projectName,
|
|
version: '0.1.0',
|
|
private: true,
|
|
scripts: {
|
|
dev: 'next dev',
|
|
build: 'next build',
|
|
start: 'next start',
|
|
lint: 'next lint',
|
|
},
|
|
dependencies: {
|
|
'@mui/material': '^5.15.0',
|
|
'@emotion/react': '^11.11.0',
|
|
'@emotion/styled': '^11.11.0',
|
|
'@prisma/client': '^5.8.0',
|
|
next: '14.1.0',
|
|
react: '^18.2.0',
|
|
'react-dom': '^18.2.0',
|
|
},
|
|
devDependencies: {
|
|
'@types/node': '^20',
|
|
'@types/react': '^18',
|
|
'@types/react-dom': '^18',
|
|
prisma: '^5.8.0',
|
|
typescript: '^5',
|
|
},
|
|
},
|
|
null,
|
|
2
|
|
)
|
|
|
|
files['prisma/schema.prisma'] = generatePrismaSchema(models)
|
|
|
|
files['src/theme.ts'] = generateMUITheme(theme)
|
|
|
|
files['src/app/page.tsx'] = `'use client'
|
|
|
|
import { ThemeProvider } from '@mui/material/styles'
|
|
import CssBaseline from '@mui/material/CssBaseline'
|
|
import { theme } from '@/theme'
|
|
|
|
export default function Home() {
|
|
return (
|
|
<ThemeProvider theme={theme}>
|
|
<CssBaseline />
|
|
<main>
|
|
{/* Your components here */}
|
|
</main>
|
|
</ThemeProvider>
|
|
)
|
|
}`
|
|
|
|
files['next.config.js'] = `/** @type {import('next').NextConfig} */
|
|
const nextConfig = {}
|
|
|
|
module.exports = nextConfig`
|
|
|
|
files['.env'] = `DATABASE_URL="postgresql://user:password@localhost:5432/mydb"`
|
|
|
|
files['README.md'] = `# ${projectName}
|
|
|
|
Generated with CodeForge
|
|
|
|
## Getting Started
|
|
|
|
1. Install dependencies:
|
|
\`\`\`bash
|
|
npm install
|
|
\`\`\`
|
|
|
|
2. Set up your database in .env
|
|
|
|
3. Run Prisma migrations:
|
|
\`\`\`bash
|
|
npx prisma migrate dev
|
|
\`\`\`
|
|
|
|
4. Start the development server:
|
|
\`\`\`bash
|
|
npm run dev
|
|
\`\`\`
|
|
|
|
Open [http://localhost:3000](http://localhost:3000) with your browser.`
|
|
|
|
return files
|
|
}
|