UNPKG

@svta/common-media-library

Version:
38 lines 1.21 kB
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