UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

43 lines (42 loc) 1.57 kB
import { addParametersToPath } from './utils'; export class ProxyClient { client; getProxyUrl; constructor(client, getProxyUrl) { this.client = client; this.getProxyUrl = getProxyUrl; } get = (proxy, ...args) => { const [path, parameters, headers] = args; const url = addParametersToPath(path, parameters); const { realUrl, realHeaders } = this.getReal(proxy, url, headers); return this.client.get(realUrl, {}, realHeaders); }; post = (proxy, ...args) => { const [path, data, parameters, headers] = args; const url = addParametersToPath(path, parameters); const { realUrl, realHeaders } = this.getReal(proxy, url, headers); return this.client.post(realUrl, data, {}, realHeaders); }; getReal = (proxy, url, headers) => { if (proxy !== null) { return { realUrl: this.getProxyUrl(), realHeaders: { ...(headers ?? {}), 'x-target-camera-protocol': proxy.port === 443 ? 'https' : 'http', 'x-target-camera-path': url, 'x-target-camera-ip': proxy.ip, 'x-target-camera-mdns': proxy.mdnsName, 'x-target-camera-port': String(proxy.port), 'x-target-camera-pass': proxy.pass, 'x-target-camera-user': proxy.user, }, }; } return { realUrl: url, realHeaders: headers, }; }; }