chore: editor store, graph, and vite config updates
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import { resolve } from 'path'
|
||||
import fs from 'fs'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
@@ -18,4 +19,30 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
},
|
||||
server: {
|
||||
configureServer(server) {
|
||||
server.middlewares.use('/api/save', (req, res) => {
|
||||
if (req.method !== 'POST') { res.writeHead(405); res.end(); return }
|
||||
let body = ''
|
||||
req.on('data', (c: string) => body += c)
|
||||
req.on('end', () => {
|
||||
try {
|
||||
const { path, data } = JSON.parse(body)
|
||||
if (!path || typeof path !== 'string' || !path.startsWith('/scenes/')) {
|
||||
res.writeHead(400)
|
||||
res.end(JSON.stringify({ error: 'invalid path' }))
|
||||
return
|
||||
}
|
||||
const safePath = resolve(__dirname, 'public', '.' + path)
|
||||
fs.writeFileSync(safePath, JSON.stringify(data, null, 2))
|
||||
res.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
res.end(JSON.stringify({ ok: true }))
|
||||
} catch (e: any) {
|
||||
res.writeHead(400)
|
||||
res.end(JSON.stringify({ error: e.message }))
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user