UNPKG

@techolution-ai/computer-vision

Version:

A JavaScript/TypeScript library for computer vision applications, providing tools for image processing, scanning, and MQTT-based messaging.

1 lines 5.72 kB
{"version":3,"sources":["../../../src/helpers/http-client.ts"],"sourcesContent":["import { prepareRequestUrl } from './utils'\n\nexport interface IHttpClientRequestOptions {\n baseUrl?: string\n withCredentials?: boolean\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\nexport default class HttpClient {\n baseUrl: string\n headers: Record<string, string>\n withCredentials: boolean\n constructor(options: {\n baseUrl: string\n headers?: Record<string, string>\n withCredentials?: boolean\n }) {\n this.baseUrl = options.baseUrl\n this.headers = options.headers || { 'Content-Type': 'application/json' }\n this.withCredentials = options.withCredentials || false\n\n this._makeRequest = this._makeRequest.bind(this)\n }\n\n private async _makeRequest<T, U = null>(\n url: string,\n method: string,\n body: U,\n options: IHttpClientRequestOptions = {},\n ) {\n let data: T = null\n const _withCredentials =\n options.withCredentials !== undefined\n ? options.withCredentials\n : this.withCredentials\n const combinedHeaders = { ...this.headers, ...options.headers }\n\n const res = await fetch(prepareRequestUrl(url, this.baseUrl), {\n method,\n headers: combinedHeaders,\n body: body ? JSON.stringify(body) : null,\n credentials: _withCredentials ? 'include' : 'same-origin',\n signal: options.signal,\n })\n\n try {\n const contentType = res.headers.get('content-type')\n if (contentType && contentType.includes('application/json')) {\n data = (await res.json()) as T\n } else if (contentType && contentType.includes('text/')) {\n data = (await res.text()) as T\n } else {\n data = (await res.blob()) as T\n }\n } catch (error) {\n // console.error(error);\n }\n\n return {\n status: res.status,\n statusText: res.statusText,\n headers: res.headers,\n url: res.url,\n redirected: res.redirected,\n ok: res.ok,\n data,\n }\n }\n\n public async get<T>(url: string, options: IHttpClientRequestOptions = {}) {\n return this._makeRequest<T>(url, 'GET', null, options)\n }\n\n public async post<T, U>(\n url: string,\n body: U = null,\n options: IHttpClientRequestOptions = {},\n ) {\n return this._makeRequest<T, U>(url, 'POST', body, options)\n }\n\n public async put<T, U = null>(\n url: string,\n body: U = null,\n options: IHttpClientRequestOptions = {},\n ) {\n return this._makeRequest<T, U>(url, 'PUT', body, options)\n }\n\n public async delete<T, U = null>(\n url: string,\n body: U = null,\n options: IHttpClientRequestOptions = {},\n ) {\n return this._makeRequest<T, U>(url, 'DELETE', body, options)\n }\n\n public async patch<T, U = null>(\n url: string,\n body: U = null,\n options: IHttpClientRequestOptions = {},\n ) {\n return this._makeRequest<T, U>(url, 'PATCH', body, options)\n }\n\n public async head<T, U = null>(\n url: string,\n body: U = null,\n options: IHttpClientRequestOptions = {},\n ) {\n return this._makeRequest<T, U>(url, 'HEAD', body, options)\n }\n\n public async options<T, U = null>(\n url: string,\n body: U = null,\n options: IHttpClientRequestOptions = {},\n ) {\n return this._makeRequest<T, U>(url, 'OPTIONS', body, options)\n }\n\n public addHeaders(headers: Record<string, string>) {\n this.headers = { ...this.headers, ...headers }\n }\n\n public removeHeader(key: string) {\n delete this.headers[key]\n }\n\n public clearHeaders() {\n this.headers = {}\n }\n\n public setWithCredentials(value: boolean) {\n this.withCredentials = value\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AASlC,IAAqB,aAArB,MAAgC;AAAA,EAI9B,YAAY,SAIT;AACD,SAAK,UAAU,QAAQ;AACvB,SAAK,UAAU,QAAQ,WAAW,EAAE,gBAAgB,mBAAmB;AACvE,SAAK,kBAAkB,QAAQ,mBAAmB;AAElD,SAAK,eAAe,KAAK,aAAa,KAAK,IAAI;AAAA,EACjD;AAAA,EAEA,MAAc,aACZ,KACA,QACA,MACA,UAAqC,CAAC,GACtC;AACA,QAAI,OAAU;AACd,UAAM,mBACJ,QAAQ,oBAAoB,SACxB,QAAQ,kBACR,KAAK;AACX,UAAM,kBAAkB,EAAE,GAAG,KAAK,SAAS,GAAG,QAAQ,QAAQ;AAE9D,UAAM,MAAM,MAAM,UAAM,gCAAkB,KAAK,KAAK,OAAO,GAAG;AAAA,MAC5D;AAAA,MACA,SAAS;AAAA,MACT,MAAM,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,MACpC,aAAa,mBAAmB,YAAY;AAAA,MAC5C,QAAQ,QAAQ;AAAA,IAClB,CAAC;AAED,QAAI;AACF,YAAM,cAAc,IAAI,QAAQ,IAAI,cAAc;AAClD,UAAI,eAAe,YAAY,SAAS,kBAAkB,GAAG;AAC3D,eAAQ,MAAM,IAAI,KAAK;AAAA,MACzB,WAAW,eAAe,YAAY,SAAS,OAAO,GAAG;AACvD,eAAQ,MAAM,IAAI,KAAK;AAAA,MACzB,OAAO;AACL,eAAQ,MAAM,IAAI,KAAK;AAAA,MACzB;AAAA,IACF,SAAS,OAAO;AAAA,IAEhB;AAEA,WAAO;AAAA,MACL,QAAQ,IAAI;AAAA,MACZ,YAAY,IAAI;AAAA,MAChB,SAAS,IAAI;AAAA,MACb,KAAK,IAAI;AAAA,MACT,YAAY,IAAI;AAAA,MAChB,IAAI,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,IAAO,KAAa,UAAqC,CAAC,GAAG;AACxE,WAAO,KAAK,aAAgB,KAAK,OAAO,MAAM,OAAO;AAAA,EACvD;AAAA,EAEA,MAAa,KACX,KACA,OAAU,MACV,UAAqC,CAAC,GACtC;AACA,WAAO,KAAK,aAAmB,KAAK,QAAQ,MAAM,OAAO;AAAA,EAC3D;AAAA,EAEA,MAAa,IACX,KACA,OAAU,MACV,UAAqC,CAAC,GACtC;AACA,WAAO,KAAK,aAAmB,KAAK,OAAO,MAAM,OAAO;AAAA,EAC1D;AAAA,EAEA,MAAa,OACX,KACA,OAAU,MACV,UAAqC,CAAC,GACtC;AACA,WAAO,KAAK,aAAmB,KAAK,UAAU,MAAM,OAAO;AAAA,EAC7D;AAAA,EAEA,MAAa,MACX,KACA,OAAU,MACV,UAAqC,CAAC,GACtC;AACA,WAAO,KAAK,aAAmB,KAAK,SAAS,MAAM,OAAO;AAAA,EAC5D;AAAA,EAEA,MAAa,KACX,KACA,OAAU,MACV,UAAqC,CAAC,GACtC;AACA,WAAO,KAAK,aAAmB,KAAK,QAAQ,MAAM,OAAO;AAAA,EAC3D;AAAA,EAEA,MAAa,QACX,KACA,OAAU,MACV,UAAqC,CAAC,GACtC;AACA,WAAO,KAAK,aAAmB,KAAK,WAAW,MAAM,OAAO;AAAA,EAC9D;AAAA,EAEO,WAAW,SAAiC;AACjD,SAAK,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,QAAQ;AAAA,EAC/C;AAAA,EAEO,aAAa,KAAa;AAC/B,WAAO,KAAK,QAAQ,GAAG;AAAA,EACzB;AAAA,EAEO,eAAe;AACpB,SAAK,UAAU,CAAC;AAAA,EAClB;AAAA,EAEO,mBAAmB,OAAgB;AACxC,SAAK,kBAAkB;AAAA,EACzB;AACF;","names":[]}