UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

55 lines 3.04 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var general_data_1 = __importDefault(require("../utils/general-data")); var video_event_time_1 = require("../utils/video-event-time"); function prepareSingleVideoWatchEvent(videoId, generalData, watchEvent) { var startEvent = watchEvent.startEvent, stopEvent = watchEvent.stopEvent, watchTime = watchEvent.watchTime; return __assign({}, generalData, { type: 'videoWatch', id: videoId, videoId: videoId, videoPlayVolume: startEvent.volume, videoStopVolume: stopEvent.volume, videoPlayPosition: startEvent.position, videoStopPosition: stopEvent.position, videoPlayReason: startEvent.reason, videoStopReason: stopEvent.reason, videoPlayMuted: startEvent.muted, videoStopMuted: stopEvent.muted, activeTime: watchTime }); } exports.prepareSingleVideoWatchEvent = prepareSingleVideoWatchEvent; function prepareVideoWatchEvents(input) { var startEvents = video_event_time_1.calculateVideoEventTime(input.page.state.video.events, input.videoId, input.page.state.player, input.playerId, input.time || new Date()); var general = general_data_1.default(input.page.state); var watchEvents = startEvents.length > 0 ? startEvents : []; return watchEvents.map(function (watchEvent) { return prepareSingleVideoWatchEvent(input.videoId, general, watchEvent); }); } exports.default = prepareVideoWatchEvents; function getAllVideoWatchEventsPrepared(page, time) { // Get all unique (videoId, playerId)-pairs from page var allIdPairs = page.state.video.events.map(function (_a) { var videoId = _a.videoId, playerId = _a.playerId; return ({ videoId: videoId, playerId: playerId, }); }); var uniqueIdPairsObj = allIdPairs.reduce(function (register, idPair) { register[idPair.videoId + idPair.playerId] = idPair; return register; }, {}); var uniqueIdPairs = Object.keys(uniqueIdPairsObj).map(function (key) { return uniqueIdPairsObj[key]; }); // Prepare all events for each (videoId, playerId)-pair, and merge them into a single list return uniqueIdPairs.reduce(function (all, _a) { var videoId = _a.videoId, playerId = _a.playerId; var events = prepareVideoWatchEvents({ page: page, time: time, videoId: videoId, playerId: playerId }); return all.concat(events); }, []); } exports.getAllVideoWatchEventsPrepared = getAllVideoWatchEventsPrepared; //# sourceMappingURL=prepare-video-watch-event.js.map