UNPKG

redux-keen

Version:

Redux middleware for sending analytics to Keen.

44 lines (34 loc) 1.33 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports['default'] = keenAnalytics; function keenAnalytics(keenClient, getGlobals) { if (!keenClient || !keenClient.addEvent) { throw new TypeError('You must provide a keen-js client instance.'); } var globals = {}; return function (store) { return function (next) { return function (action) { if (!action.meta || !action.meta.analytics || !action.meta.analytics.collection) { return next(action); } try { if (typeof getGlobals === 'function') { globals = getGlobals(store.getState()); } var _action$meta$analytics = action.meta.analytics; var collection = _action$meta$analytics.collection; var _event = _action$meta$analytics.event; keenClient.addEvent(collection, _extends({}, globals, _event)); } catch (error) { console.error(error); } return next(action); }; }; }; } module.exports = exports['default'];