UNPKG

@ackee/antonio-core

Version:

A HTTP client built on fetch API with axios-like API.

31 lines 4.36 kB
import { Header } from '../../../constants'; import { parseContentTypeHeader, parseMimeTypes } from '../responseDataTypes'; import { iterableStream } from '../iterableStream'; function hasJsonMimeType(headers) { const contentType = headers.get(Header.CONTENT_TYPE); if (!contentType) { return false; } const mimeTypes = parseMimeTypes(parseContentTypeHeader(contentType)); return mimeTypes.includes('application/json'); } export function hasEmptyContentLength(headers) { return headers.get(Header.CONTENT_LENGTH) === '0'; } export async function parseResponse(responseDataType, response) { switch (responseDataType) { case 'json': case 'blob': case 'formData': case 'text': case 'arrayBuffer': return response[responseDataType](); case 'iterableStream': return iterableStream(response.body, hasJsonMimeType(response.headers)); case 'stream': return response.body; default: return null; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIZWFkZXIiLCJwYXJzZUNvbnRlbnRUeXBlSGVhZGVyIiwicGFyc2VNaW1lVHlwZXMiLCJpdGVyYWJsZVN0cmVhbSIsImhhc0pzb25NaW1lVHlwZSIsImhlYWRlcnMiLCJjb250ZW50VHlwZSIsImdldCIsIkNPTlRFTlRfVFlQRSIsIm1pbWVUeXBlcyIsImluY2x1ZGVzIiwiaGFzRW1wdHlDb250ZW50TGVuZ3RoIiwiQ09OVEVOVF9MRU5HVEgiLCJwYXJzZVJlc3BvbnNlIiwicmVzcG9uc2VEYXRhVHlwZSIsInJlc3BvbnNlIiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Jlc3BvbnNlL3V0aWxzL3Jlc3BvbnNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzcG9uc2VEYXRhVHlwZSwgUmVzcG9uc2VEYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgcGFyc2VDb250ZW50VHlwZUhlYWRlciwgcGFyc2VNaW1lVHlwZXMgfSBmcm9tICcuLi9yZXNwb25zZURhdGFUeXBlcyc7XG5pbXBvcnQgeyBpdGVyYWJsZVN0cmVhbSB9IGZyb20gJy4uL2l0ZXJhYmxlU3RyZWFtJztcblxuZnVuY3Rpb24gaGFzSnNvbk1pbWVUeXBlKGhlYWRlcnM6IEhlYWRlcnMpIHtcbiAgICBjb25zdCBjb250ZW50VHlwZSA9IGhlYWRlcnMuZ2V0KEhlYWRlci5DT05URU5UX1RZUEUpO1xuXG4gICAgaWYgKCFjb250ZW50VHlwZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbWltZVR5cGVzID0gcGFyc2VNaW1lVHlwZXMocGFyc2VDb250ZW50VHlwZUhlYWRlcihjb250ZW50VHlwZSkpO1xuXG4gICAgcmV0dXJuIG1pbWVUeXBlcy5pbmNsdWRlcygnYXBwbGljYXRpb24vanNvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRW1wdHlDb250ZW50TGVuZ3RoKGhlYWRlcnM6IEhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycy5nZXQoSGVhZGVyLkNPTlRFTlRfTEVOR1RIKSA9PT0gJzAnO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VSZXNwb25zZShcbiAgICByZXNwb25zZURhdGFUeXBlOiBSZXNwb25zZURhdGFUeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICByZXNwb25zZTogUmVzcG9uc2UsXG4pOiBQcm9taXNlPFJlc3BvbnNlRGF0YSB8IG51bGw+IHtcbiAgICBzd2l0Y2ggKHJlc3BvbnNlRGF0YVR5cGUpIHtcbiAgICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIGNhc2UgJ2Jsb2InOlxuICAgICAgICBjYXNlICdmb3JtRGF0YSc6XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBjYXNlICdhcnJheUJ1ZmZlcic6XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VbcmVzcG9uc2VEYXRhVHlwZV0oKTtcblxuICAgICAgICBjYXNlICdpdGVyYWJsZVN0cmVhbSc6XG4gICAgICAgICAgICByZXR1cm4gaXRlcmFibGVTdHJlYW0ocmVzcG9uc2UuYm9keSwgaGFzSnNvbk1pbWVUeXBlKHJlc3BvbnNlLmhlYWRlcnMpKTtcblxuICAgICAgICBjYXNlICdzdHJlYW0nOlxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsTUFBTSxRQUFRLG9CQUFvQjtBQUUzQyxTQUFTQyxzQkFBc0IsRUFBRUMsY0FBYyxRQUFRLHNCQUFzQjtBQUM3RSxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBRWxELFNBQVNDLGVBQWVBLENBQUNDLE9BQWdCLEVBQUU7RUFDdkMsTUFBTUMsV0FBVyxHQUFHRCxPQUFPLENBQUNFLEdBQUcsQ0FBQ1AsTUFBTSxDQUFDUSxZQUFZLENBQUM7RUFFcEQsSUFBSSxDQUFDRixXQUFXLEVBQUU7SUFDZCxPQUFPLEtBQUs7RUFDaEI7RUFFQSxNQUFNRyxTQUFTLEdBQUdQLGNBQWMsQ0FBQ0Qsc0JBQXNCLENBQUNLLFdBQVcsQ0FBQyxDQUFDO0VBRXJFLE9BQU9HLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDLGtCQUFrQixDQUFDO0FBQ2pEO0FBRUEsT0FBTyxTQUFTQyxxQkFBcUJBLENBQUNOLE9BQWdCLEVBQUU7RUFDcEQsT0FBT0EsT0FBTyxDQUFDRSxHQUFHLENBQUNQLE1BQU0sQ0FBQ1ksY0FBYyxDQUFDLEtBQUssR0FBRztBQUNyRDtBQUVBLE9BQU8sZUFBZUMsYUFBYUEsQ0FDL0JDLGdCQUFxRCxFQUNyREMsUUFBa0IsRUFDVTtFQUM1QixRQUFRRCxnQkFBZ0I7SUFDcEIsS0FBSyxNQUFNO0lBQ1gsS0FBSyxNQUFNO0lBQ1gsS0FBSyxVQUFVO0lBQ2YsS0FBSyxNQUFNO0lBQ1gsS0FBSyxhQUFhO01BQ2QsT0FBT0MsUUFBUSxDQUFDRCxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFdkMsS0FBSyxnQkFBZ0I7TUFDakIsT0FBT1gsY0FBYyxDQUFDWSxRQUFRLENBQUNDLElBQUksRUFBRVosZUFBZSxDQUFDVyxRQUFRLENBQUNWLE9BQU8sQ0FBQyxDQUFDO0lBRTNFLEtBQUssUUFBUTtNQUNULE9BQU9VLFFBQVEsQ0FBQ0MsSUFBSTtJQUV4QjtNQUNJLE9BQU8sSUFBSTtFQUNuQjtBQUNKIiwiaWdub3JlTGlzdCI6W119