mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-20 12:15:06 -04:00
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
const express = require('express')
|
|
const bodyParser = require('body-parser');
|
|
const fs = require('fs')
|
|
const app = express()
|
|
const port = 4400
|
|
|
|
const srcPath = 'src/levels.json'
|
|
app.use(bodyParser.text({
|
|
type: 'text/plain',
|
|
limit:'1MB'
|
|
}));
|
|
|
|
|
|
app.get('/', (req, res) => {
|
|
res.end(`<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Level editor</title>
|
|
<link rel="icon"
|
|
href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🎨</text></svg>"
|
|
/>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="levels"></div>
|
|
<div id="palette">
|
|
<button id="new-level">new</button>
|
|
</div>
|
|
|
|
<style>
|
|
${fs.readFileSync('./editclient.css').toString()}
|
|
</style>
|
|
<script>
|
|
let allLevels = ${fs.readFileSync(srcPath).toString()};
|
|
let palette = ${fs.readFileSync('src/palette.json').toString()};
|
|
${fs.readFileSync('./editclient.js').toString()}
|
|
</script>
|
|
</body>
|
|
`)
|
|
})
|
|
app.post('/', (req, res) => {
|
|
if(req.body?.trim()) {
|
|
fs.writeFileSync(srcPath, req.body)
|
|
}
|
|
res.end('OK')
|
|
})
|
|
|
|
app.listen(port, () => {
|
|
console.log(`Example app listening on port http://localhost:${port}`)
|
|
})
|