{"version":3,"file":"fetch.mjs","sources":["../../../../src/clients/handlers/fetch.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError } from '../../errors';\nimport { withMemoization } from '../utils/memoization';\nimport { AmplifyErrorCode } from '../../types';\nconst shouldSendBody = (method) => !['HEAD', 'GET'].includes(method.toUpperCase());\n// TODO[AllanZhengYP]: we need to provide isCanceledError utility\nexport const fetchTransferHandler = async ({ url, method, headers, body }, { abortSignal, cache, withCrossDomainCredentials }) => {\n    let resp;\n    try {\n        resp = await fetch(url, {\n            method,\n            headers,\n            body: shouldSendBody(method) ? body : undefined,\n            signal: abortSignal,\n            cache,\n            credentials: withCrossDomainCredentials ? 'include' : 'same-origin',\n        });\n    }\n    catch (e) {\n        if (e instanceof TypeError) {\n            throw new AmplifyError({\n                name: AmplifyErrorCode.NetworkError,\n                message: 'A network error has occurred.',\n                underlyingError: e,\n            });\n        }\n        throw e;\n    }\n    const responseHeaders = {};\n    resp.headers?.forEach((value, key) => {\n        responseHeaders[key.toLowerCase()] = value;\n    });\n    const httpResponse = {\n        statusCode: resp.status,\n        headers: responseHeaders,\n        body: null,\n    };\n    // resp.body is a ReadableStream according to Fetch API spec, but React Native\n    // does not implement it.\n    const bodyWithMixin = Object.assign(resp.body ?? {}, {\n        text: withMemoization(() => resp.text()),\n        blob: withMemoization(() => resp.blob()),\n        json: withMemoization(() => resp.json()),\n    });\n    return {\n        ...httpResponse,\n        body: bodyWithMixin,\n    };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAIA,MAAM,cAAc,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAClF;AACY,MAAC,oBAAoB,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK;AAClI,IAAI,IAAI,IAAI;AACZ,IAAI,IAAI;AACR,QAAQ,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAChC,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB,YAAY,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS;AAC3D,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,KAAK;AACjB,YAAY,WAAW,EAAE,0BAA0B,GAAG,SAAS,GAAG,aAAa;AAC/E,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE;AACd,QAAQ,IAAI,CAAC,YAAY,SAAS,EAAE;AACpC,YAAY,MAAM,IAAI,YAAY,CAAC;AACnC,gBAAgB,IAAI,EAAE,gBAAgB,CAAC,YAAY;AACnD,gBAAgB,OAAO,EAAE,+BAA+B;AACxD,gBAAgB,eAAe,EAAE,CAAC;AAClC,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,MAAM,CAAC;AACf,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AAC1C,QAAQ,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK;AAClD,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,UAAU,EAAE,IAAI,CAAC,MAAM;AAC/B,QAAQ,OAAO,EAAE,eAAe;AAChC,QAAQ,IAAI,EAAE,IAAI;AAClB,KAAK;AACL;AACA;AACA,IAAI,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE;AACzD,QAAQ,IAAI,EAAE,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAChD,QAAQ,IAAI,EAAE,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAChD,QAAQ,IAAI,EAAE,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,OAAO;AACX,QAAQ,GAAG,YAAY;AACvB,QAAQ,IAAI,EAAE,aAAa;AAC3B,KAAK;AACL;;;;"}