15 lines
603 B
JavaScript
15 lines
603 B
JavaScript
import { proxyToInstance } from './service.js'
|
|
|
|
export function registerProxyRoutes(app, { findClient, proxy = proxyToInstance }) {
|
|
app.all('/api/proxy/:id/*', async (request, reply) => {
|
|
const client = findClient(request.params.id, reply)
|
|
if (!client) return
|
|
try { return await proxy({ client, request, reply, rest: request.params['*'] }) }
|
|
catch (error) {
|
|
if (/invalid proxy path/.test(error.message)) return reply.code(400).send({ error: error.message })
|
|
if (error.statusCode === 415) return reply.code(415).send({ error: error.message })
|
|
throw error
|
|
}
|
|
})
|
|
}
|