@airgrid/edgekit
Version:
A privacy focused library for cookie-less audience creation.
30 lines • 1.5 kB
JavaScript
;
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