UNPKG

@sap-cloud-sdk/core

Version:
73 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.responseDataAccessorV4 = exports.responseDataAccessor = exports.getSingleResult = exports.getLinkedCollectionResult = exports.isCollectionResult = exports.getCollectionResult = void 0; var util_1 = require("@sap-cloud-sdk/util"); var logger = (0, util_1.createLogger)({ package: 'core', messageContext: 'response-data-accessor' }); /** * Methods to extract the data from OData v4 responses. */ /** * Extract the collection data from the response. * If the data does not contain a collection an empty array is returned. * @param data - Response of the OData v4 service. * @returns Collection extracted from the response. */ function getCollectionResult(data) { validateCollectionResult(data); return isCollectionResult(data) ? data.value : []; } exports.getCollectionResult = getCollectionResult; /** * Checks if the data contains a collection result. * @param data - Response of the OData v4 service * @returns `true`, if the data is a collection result */ function isCollectionResult(data) { return Array.isArray(data.value); } exports.isCollectionResult = isCollectionResult; function validateCollectionResult(data) { if (!isCollectionResult(data)) { logger.warn('The given response data does not have the standard OData v4 format for collections.'); } } /** * Extract the collection data from the one to many link response. * If the data does not contain a collection an empty array is returned. * @param data - Response of the one to many link. * @returns Collection extracted from the response. */ function getLinkedCollectionResult(data) { return Array.isArray(data) ? data : []; } exports.getLinkedCollectionResult = getLinkedCollectionResult; /** * Extract the single entry data from the response. * If the data does not contain a single object an empty object is returned. * @param data - Response of the OData v4 service. * @returns A single object extracted from the response. */ function getSingleResult(data) { validateSingleResult(data); return isSingleResult(data) ? data : {}; } exports.getSingleResult = getSingleResult; function isSingleResult(data) { return typeof data === 'object' && !Array.isArray(data); } function validateSingleResult(data) { if (!isSingleResult(data)) { logger.warn('The given response data does not have the standard OData v4 format for single results.'); } } exports.responseDataAccessor = { getCollectionResult: getCollectionResult, getLinkedCollectionResult: getLinkedCollectionResult, getSingleResult: getSingleResult, isCollectionResult: isCollectionResult }; exports.responseDataAccessorV4 = exports.responseDataAccessor; //# sourceMappingURL=response-data-accessor.js.map