UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

55 lines 2.4 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 event_time_1 = require("../utils/event-time"); var general_data_1 = __importDefault(require("../utils/general-data")); /** * Prepares a raw impression by aggregating its fields so that * it can be sent to the server in the format aas expects. */ function prepareArticleImpressionEvent(page, id, time) { var ap = page.state.articlePreview[id] || { id: id || 'error', url: undefined, }; var inscreenTime = id ? event_time_1.calculateEventTime({ times: page.state.inscreen[id], screenEvents: page.state.screen.events, now: time, }) : 0; return __assign({}, general_data_1.default(page.state), { id: ap.id, context: ap.context || undefined, type: 'impression', inscreenTime: inscreenTime, article: { url: ap.url, harvesterId: ap.id }, title: ap.title || undefined, height: ap.height || 0, width: ap.width || 0, personalizationParametersRequested: ap.personalizationParametersRequested || undefined, personalizationSystemUsed: ap.personalizationSystemUsed || undefined, position: ap.position || undefined }); } exports.default = prepareArticleImpressionEvent; function getAllArticleImpressionEventsPrepared(page, time) { if (!page || !page.state) { return []; } return Object.keys(page.state.articlePreview) .map(function (articleId) { try { return prepareArticleImpressionEvent(page, articleId, time); } catch (err) { var event = { id: '', pageView: '', type: 'error' }; return event; } }) .filter(function (event) { return event.type !== 'error'; }); } exports.getAllArticleImpressionEventsPrepared = getAllArticleImpressionEventsPrepared; //# sourceMappingURL=prepare-impression-event.js.map