UNPKG

@apollo-orbit/angular

Version:

A full-featured GraphQL client for Angular

1 lines 5.38 kB
{"version":3,"file":"apollo-orbit.angular.fetch.mjs","sources":["../../fetch/src/takeUntilAborted.ts","../../fetch/src/index.ts","../../fetch/src/apollo-orbit.angular.fetch.ts"],"sourcesContent":["import { fromEvent, OperatorFunction } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport function takeUntilAborted<T>(signal: AbortSignal | null | undefined): OperatorFunction<T, T> {\n return !signal\n ? source => source\n : source => source.pipe(takeUntil(fromEvent(signal, 'abort')));\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { lastValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { HttpConfig } from './httpConfig';\nimport { takeUntilAborted } from './takeUntilAborted';\n\nexport { HttpConfig } from './httpConfig';\n\nconst normalizedHeaders: { [from: string]: string | undefined } = {\n 'accept': 'Accept',\n 'content-type': 'Content-Type'\n};\n\nexport const makeFetch = (httpClient: HttpClient) => (url: string, { method, ...config }: HttpConfig): Promise<Response> => {\n return lastValueFrom(\n httpClient.request(method, url, {\n ...config,\n headers: normalizeHeaders(config.headers),\n observe: 'response',\n responseType: 'text',\n reportProgress: false,\n withCredentials: config.credentials === 'include'\n }).pipe(\n map(response => getResponse(response)),\n catchError(error => of(getErrorResponse(error))),\n takeUntilAborted(config.signal)\n )\n );\n};\n\nfunction getErrorResponse(errorResponse: HttpErrorResponse): Response {\n const { error, name, message, ...rest } = errorResponse;\n if (errorResponse.status <= 0) throw new TypeError('Failed to fetch');\n return getResponse({ body: error, ...rest } as HttpResponse<string>);\n}\n\nfunction getResponse(response: HttpResponse<string>): Response {\n const headers = mapHeaders(response.headers);\n if (typeof Response !== 'function') {\n // node environment\n const { ok, status, statusText, url, body } = response;\n return { ok, status, statusText, url, headers: new Headers(headers), text: () => Promise.resolve(body) } as Response;\n } else {\n // browser environment\n return new Response(response.body, { ...response, headers });\n }\n}\n\nfunction mapHeaders(headers: HttpHeaders | undefined): HeadersInit | undefined {\n if (!headers) return headers;\n return headers.keys().reduce((acc, key) => ({ ...acc, [key]: headers.get(key) }), {});\n}\n\n// @apollo/client passes headers in a format that fails angular checks\nfunction normalizeHeaders(headers: Record<string, string> | undefined): Record<string, string> | undefined {\n if (!headers) return headers;\n\n return Object\n .keys(headers)\n .reduce(\n (acc, header) => {\n const normalizedHeader = normalizedHeaders[header];\n return normalizedHeader !== undefined\n ? { ...acc, [normalizedHeader]: headers[header] }\n : { ...acc, [header]: headers[header] };\n },\n {});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}