@svta/common-media-library
Version:
A common library for media playback in JavaScript
56 lines • 1.77 kB
JavaScript
;
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