@airgrid/edgekit
Version:
A privacy focused library for cookie-less audience creation.
25 lines • 1.08 kB
JavaScript
import { __spreadArrays } from "tslib";
import { evaluateCondition } from './evaluate';
import { timeStampInSecs } from '../utils';
import { translate } from './translate';
var getMatchingAudiences = function (audienceDefinitions, pageViews) {
var currentTS = timeStampInSecs();
return audienceDefinitions.reduce(function (acc, audience) {
var condition = translate(audience);
var pageViewsWithinLookBack = pageViews.filter(function (pageView) {
return audience.lookBack === 0 || pageView.ts > currentTS - audience.lookBack;
});
return evaluateCondition(condition, pageViewsWithinLookBack)
? __spreadArrays(acc, [
{
id: audience.id,
version: audience.version,
matchedAt: currentTS,
expiresAt: currentTS + audience.ttl,
matchedOnCurrentPageView: true,
},
]) : acc;
}, []);
};
export { translate, evaluateCondition, getMatchingAudiences };
//# sourceMappingURL=index.js.map