MCPcopy Create free account
hub / github.com/Script-Hub-Org/Script-Hub / reqFn

Function reqFn

service.js:33–61  ·  view source on GitHub ↗
({ ctx, scriptMap, baseUrl })

Source from the content-addressed store, hash-verified

31 })
32}
33const reqFn = async ({ ctx, scriptMap, baseUrl }) => {
34 let scriptFilePath
35 let url = `http://script.hub${ctx.req.url}`
36
37 for (const [k, v] of Object.entries(scriptMap)) {
38 if (v.test(url)) {
39 scriptFilePath = k
40 }
41 }
42
43 console.log(`url`, url)
44 console.log(`scriptFilePath`, scriptFilePath)
45 let $request = {
46 method: ctx.req.method,
47 headers: ctx.req.headers,
48 url,
49 }
50 const result = await evalFn({ $request, scriptFilePath })
51 // console.log(`result`, result)
52 ctx.response.status = Number(result?.response?.status || 200)
53 for (const [k, v] of Object.entries(result?.response?.headers)) {
54 // if (!/^content-length|content-encoding$/i.test(k)) {
55 ctx.set(k, v)
56 // }
57 }
58 let body = result?.response?.body
59
60 ctx.body = typeof body === 'string' ? body.replace(/https?:\/\/script.hub\//g, `${baseUrl}/`) : body
61}
62
63const app = new Koa()
64

Callers 1

service.jsFile · 0.85

Calls 2

evalFnFunction · 0.85
logMethod · 0.45

Tested by

no test coverage detected