UNPKG

@svta/common-media-library

Version:
56 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toCmcdReport = toCmcdReport; const CMCD_HEADERS_js_1 = require("./CMCD_HEADERS.js"); const CMCD_PARAM_js_1 = require("./CMCD_PARAM.js"); const CMCD_QUERY_js_1 = require("./CMCD_QUERY.js"); const encodeCmcd_js_1 = require("./encodeCmcd.js"); const toCmcdHeaders_js_1 = require("./toCmcdHeaders.js"); /** * Converts CMCD data into a report format. * * @param data - The CMCD data to be transformed into a report * @param target - The target configuration for the CMCD report * * @return A CMCD report object * * @group CMCD * * @beta * * @example * {@includeCode ../../test/cmcd/toCmcdReport.test.ts#example} */ function toCmcdReport(data, target) { if (!target || !target.url) { return null; } const url = new URL(target.url); const method = target.method || 'GET'; const headers = {}; const transimissionMode = target.transmissionMode || CMCD_QUERY_js_1.CMCD_QUERY; const options = { version: target.version, reportingMode: target.reportingMode, }; if (target.enabledKeys) { options.filter = (key) => target.enabledKeys.includes(key); } switch (transimissionMode) { case CMCD_QUERY_js_1.CMCD_QUERY: const param = (0, encodeCmcd_js_1.encodeCmcd)(data, options); if (param) { url.searchParams.set(CMCD_PARAM_js_1.CMCD_PARAM, param); } break; case CMCD_HEADERS_js_1.CMCD_HEADERS: Object.assign(headers, (0, toCmcdHeaders_js_1.toCmcdHeaders)(data, options)); break; } return { url: url.toString(), method, headers, }; } //# sourceMappingURL=toCmcdReport.js.map