// This file was generated by liblab | https://liblab.com/ import { HttpRequest, HttpResponse, RequestHandler } from '../types'; export class AuthHandler implements RequestHandler { next?: RequestHandler; async handle(request: HttpRequest): Promise> { const requestWithAuth = this.addApiKeyHeader(request); if (!this.next) { throw new Error(`No next handler set in ${AuthHandler.name}`); } return this.next?.handle(requestWithAuth); } private addApiKeyHeader(request: HttpRequest): HttpRequest { const apiKey = request.config?.apiKey; const apiKeyHeader = request.config?.apiKeyHeader ?? 'hue-application-key'; if (!apiKey) { return request; } const headers = request.headers ?? {}; headers[apiKeyHeader] = apiKey; return { ...request, headers, }; } }