const node = {} const modules = 'child_process|fs|os|process|timers|util' for (let m of modules.split`|`) node[m] = require(`node:${m}`) const formatBytes = require('bytes'), express = require('express'), morgan = require('morgan'), serveIndex = require('serve-index') const limitSize = '69mb', tmpDir = node.os.tmpdir(), { env } = node.process, PORT = env.SERVER_PORT || env.PORT || 7860 const logger = (...args) => console.log( new Date().toLocaleTimeString( 'fr', { timeZone: 'Asia/Jakarta' } ), ...args ) const execPromise = node.util.promisify( node.child_process.exec ) express() .enable('trust proxy') .set('json spaces', 2) .use(express.json({ limit: limitSize })) .use(express.urlencoded({ extended: true, limit: limitSize })) .use(morgan('dev')) .use( tmpDir, express.static(tmpDir), serveIndex(tmpDir, { hidden: true, icons: true }) ) .all('/', (_, res) => res.json({ msg: 'goodbye world.' })) .post('/eval', async (req, res) => { let code = req.body.code, o code = `(async function MengEval() { ${code} })()` try { o = await eval(code) } catch (e) { o = e } finally { res.send(node.util.format(o)) } }) .listen(PORT, logger)