@svta/common-media-library
Version:
A common library for media playback in JavaScript
38 lines • 1.21 kB
JavaScript
import { CMCD_HEADER_MAP } from './CMCD_HEADER_MAP.js';
import { CmcdHeaderField } from './CmcdHeaderField.js';
function createHeaderMap(headerMap) {
return Object.keys(headerMap)
.reduce((acc, field) => {
var _a;
(_a = headerMap[field]) === null || _a === void 0 ? void 0 : _a.forEach(key => acc[key] = field);
return acc;
}, {});
}
/**
* Group a CMCD data object into header shards
*
* @param cmcd - The CMCD data object to convert.
* @param customHeaderMap - A map of CMCD header fields to custom CMCD keys.
*
* @returns The CMCD header shards.
*
* @group CMCD
*
* @beta
*/
export function groupCmcdHeaders(cmcd, customHeaderMap) {
const result = {};
if (!cmcd) {
return result;
}
const keys = Object.keys(cmcd);
const custom = customHeaderMap ? createHeaderMap(customHeaderMap) : {};
return keys.reduce((acc, key) => {
var _a;
const field = CMCD_HEADER_MAP[key] || custom[key] || CmcdHeaderField.REQUEST;
const data = (_a = acc[field]) !== null && _a !== void 0 ? _a : (acc[field] = {});
data[key] = cmcd[key];
return acc;
}, result);
}
//# sourceMappingURL=groupCmcdHeaders.js.map