{"version":3,"file":"resolveHeaders.mjs","sources":["../../../src/utils/resolveHeaders.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const resolveHeaders = (headers, body) => {\n    const normalizedHeaders = {};\n    for (const key in headers) {\n        normalizedHeaders[key.toLowerCase()] = headers[key];\n    }\n    if (body) {\n        const contentType = normalizedHeaders['content-type'];\n        const isJsonCompatible = contentType &&\n            (contentType.startsWith('application/json') ||\n                (contentType.startsWith('application/') &&\n                    contentType.includes('+json')));\n        if (!isJsonCompatible) {\n            normalizedHeaders['content-type'] = 'application/json; charset=UTF-8';\n        }\n        if (body instanceof FormData) {\n            /**\n             * If body is a FormData we should not allow setting content-type.\n             * It's because runtime HTTP handlers(xhr, fetch, undici, node-fetch,\n             * etc.) will modify the content-type value when setting multipart\n             * boundary.\n             */\n            delete normalizedHeaders['content-type'];\n        }\n    }\n    return normalizedHeaders;\n};\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,cAAc,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACjD,IAAI,MAAM,iBAAiB,GAAG,EAAE;AAChC,IAAI,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AAC/B,QAAQ,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAC7D,QAAQ,MAAM,gBAAgB,GAAG,WAAW;AAC5C,aAAa,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC;AACvD,iBAAiB,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;AACvD,oBAAoB,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,iBAAiB,CAAC,cAAc,CAAC,GAAG,iCAAiC;AACjF,QAAQ;AACR,QAAQ,IAAI,IAAI,YAAY,QAAQ,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,iBAAiB,CAAC,cAAc,CAAC;AACpD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,iBAAiB;AAC5B;;;;"}