| 13 | const BETA_BASE_URL = process.env.BETA_BASE_URL || `http://127.0.0.1:${BETA_PORT}` |
| 14 | |
| 15 | const evalFn = async ({ $request, scriptFilePath }) => { |
| 16 | let content = fs.readFileSync(scriptFilePath, { encoding: 'utf8' }) |
| 17 | content = content.replace(/\$\.?done\(/g, '$eval_env.resolve(') |
| 18 | if (content.indexOf('$eval_env.resolve(') === -1) throw new Error('脚本文件内容不包含 $done 的逻辑') |
| 19 | |
| 20 | console.log('ℹ️ 执行脚本') |
| 21 | return await new Promise(resolve => { |
| 22 | const $eval_env = { |
| 23 | resolve: async result => { |
| 24 | // console.log('ℹ️ 执行结果') |
| 25 | // console.log(result) |
| 26 | console.log('ℹ️ 执行完毕') |
| 27 | resolve(result) |
| 28 | }, |
| 29 | } |
| 30 | eval(content) |
| 31 | }) |
| 32 | } |
| 33 | const reqFn = async ({ ctx, scriptMap, baseUrl }) => { |
| 34 | let scriptFilePath |
| 35 | let url = `http://script.hub${ctx.req.url}` |