All files / Player/Utils extractLoadData.js

100% Statements 16/16
100% Branches 2/2
100% Functions 2/2
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 581x   1x 1x             76x               57x 19x 19x   19x   19x             19x                             1x 18x 9x   18x              
import pathOr from 'ramda/src/pathOr';
 
import ErrorType from '../../Errors/Constants/Error.type';
import deriveConvivaCustomMetadata from './deriveConvivaCustomMetadata';
 
/**
 * @param  {[Playback, ResumePoints, Config, Asset]} loadData
 * @param  {[Manifest]} manifest
 */
 
const extractLoadData = (loadData, manifest) => {
    const [
        latestPlayback,
        { resumeFrom },
        latestConfig,
        latestAsset,
    ] = loadData;
 
    const { mediaType, licenseUrl, releasePid } = latestPlayback;
    const { authToken, viewerId } = latestConfig.environment;
    const { tileImageUrl } = latestAsset;
 
    const enableClosedCaptions = pathOr(false, ['dazn', 'startupData', 'FeatureToggles', 'ClosedCaptionsV1'], window);
 
    const convivaCustomMetaData = deriveConvivaCustomMetadata(
        latestPlayback,
        latestConfig,
        latestAsset,
        window
    );
 
    return ({
        mediaType,
        licenseUrl,
        releasePid,
        manifestUrl: manifest.url,
        authToken,
        tileImageUrl,
        resumeFrom,
        title: `[${latestPlayback.asset.id}] ${latestPlayback.asset.title}`,
        convivaCustomMetaData,
        viewerId,
        enableClosedCaptions,
    });
};
 
const mapResumeFromToCurrentTime = (getErrorType, player, data) => {
    if (getErrorType() === ErrorType.PLAYBACK_SOURCE_MIDSTREAM) {
        data.resumeFrom = player.state.snapshot.playback.currentTime;
    }
    return data;
};
 
export {
    extractLoadData,
    mapResumeFromToCurrentTime,
};