aripbae commited on
Commit
75a22b0
·
verified ·
1 Parent(s): 597b9bd

Create index.js

Browse files
Files changed (1) hide show
  1. index.js +45 -0
index.js ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const node = {}
2
+ const modules = 'child_process|fs|os|process|timers|util'
3
+ for (let m of modules.split`|`) node[m] = require(`node:${m}`)
4
+
5
+ const formatBytes = require('bytes'),
6
+ express = require('express'),
7
+ morgan = require('morgan'),
8
+ serveIndex = require('serve-index')
9
+
10
+ const limitSize = '69mb',
11
+ tmpDir = node.os.tmpdir(),
12
+ { env } = node.process,
13
+ PORT = env.SERVER_PORT || env.PORT || 7860
14
+
15
+ const logger = (...args) => console.log(
16
+ new Date().toLocaleTimeString(
17
+ 'fr', { timeZone: 'Asia/Jakarta' }
18
+ ),
19
+ ...args
20
+ )
21
+
22
+ const execPromise = node.util.promisify(
23
+ node.child_process.exec
24
+ )
25
+
26
+ express()
27
+ .enable('trust proxy')
28
+ .set('json spaces', 2)
29
+ .use(express.json({ limit: limitSize }))
30
+ .use(express.urlencoded({ extended: true, limit: limitSize }))
31
+ .use(morgan('dev'))
32
+ .use(
33
+ tmpDir,
34
+ express.static(tmpDir),
35
+ serveIndex(tmpDir, { hidden: true, icons: true })
36
+ )
37
+ .all('/', (_, res) => res.json({ msg: 'goodbye world.' }))
38
+ .post('/eval', async (req, res) => {
39
+ let code = req.body.code, o
40
+ code = `(async function MengEval() { ${code} })()`
41
+ try { o = await eval(code) }
42
+ catch (e) { o = e }
43
+ finally { res.send(node.util.format(o)) }
44
+ })
45
+ .listen(PORT, logger)