Skip to content

Commit d82d39d

Browse files
author
Gerome El-assaad
committed
Update templates API to dynamically read template files
1 parent 2c33a88 commit d82d39d

1 file changed

Lines changed: 13 additions & 14 deletions

File tree

app/api/templates/route.ts

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { NextRequest, NextResponse } from 'next/server'
22
import { TemplateId } from '@/lib/templates'
3-
import { readFileSync } from 'fs'
3+
import { readFileSync, readdirSync, statSync } from 'fs'
44
import { join } from 'path'
55

66
export interface TemplateFile {
@@ -13,24 +13,23 @@ function getTemplateFiles(templateId: TemplateId): TemplateFile[] {
1313

1414
try {
1515
const templateDir = join(process.cwd(), 'sandbox-templates', templateId)
16-
const fileMappings: Record<TemplateId, string[]> = {
17-
'code-interpreter-v1': ['script.py'],
18-
'nextjs-developer': ['_app.tsx', 'e2b.Dockerfile', 'e2b.toml', 'compile_page.sh'],
19-
'vue-developer': ['app.vue', 'e2b.Dockerfile', 'e2b.toml', 'nuxt.config.ts'],
20-
'streamlit-developer': ['app.py', 'e2b.Dockerfile', 'e2b.toml'],
21-
'gradio-developer': ['app.py', 'e2b.Dockerfile', 'e2b.toml']
22-
}
2316

24-
const files = fileMappings[templateId] || []
17+
// Read all files in the template directory
18+
const files = readdirSync(templateDir)
2519

2620
for (const file of files) {
2721
try {
2822
const filePath = join(templateDir, file)
29-
const content = readFileSync(filePath, 'utf-8')
30-
templateFiles.push({
31-
name: file,
32-
content
33-
})
23+
const stat = statSync(filePath)
24+
25+
// Only include files, not directories
26+
if (stat.isFile()) {
27+
const content = readFileSync(filePath, 'utf-8')
28+
templateFiles.push({
29+
name: file,
30+
content
31+
})
32+
}
3433
} catch (error) {
3534
console.warn(`Failed to read template file ${file}:`, error)
3635
}

0 commit comments

Comments
 (0)