UNPKG

@airgrid/edgekit

Version:

A privacy focused library for cookie-less audience creation.

30 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMatchingAudiences = exports.evaluateCondition = exports.translate = void 0; var tslib_1 = require("tslib"); var evaluate_1 = require("./evaluate"); Object.defineProperty(exports, "evaluateCondition", { enumerable: true, get: function () { return evaluate_1.evaluateCondition; } }); var utils_1 = require("../utils"); var translate_1 = require("./translate"); Object.defineProperty(exports, "translate", { enumerable: true, get: function () { return translate_1.translate; } }); var getMatchingAudiences = function (audienceDefinitions, pageViews) { var currentTS = utils_1.timeStampInSecs(); return audienceDefinitions.reduce(function (acc, audience) { var condition = translate_1.translate(audience); var pageViewsWithinLookBack = pageViews.filter(function (pageView) { return audience.lookBack === 0 || pageView.ts > currentTS - audience.lookBack; }); return evaluate_1.evaluateCondition(condition, pageViewsWithinLookBack) ? tslib_1.__spreadArrays(acc, [ { id: audience.id, version: audience.version, matchedAt: currentTS, expiresAt: currentTS + audience.ttl, matchedOnCurrentPageView: true, }, ]) : acc; }, []); }; exports.getMatchingAudiences = getMatchingAudiences; //# sourceMappingURL=index.js.map