UNPKG

@fabrix/spool-analytics

Version:

Spool: Analytics for Fabrix

53 lines (52 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); exports.Utils = { loadAnalytics: (app) => { const profile = app.config.get('analytics.profile'); const frequency = app.config.get('analytics.config.frequency') || {}; Object.keys(app.analytics || {}).forEach(function (key) { const analytic = app.analytics[key]; if (analytic.methods && analytic.methods.indexOf('run') > -1 && app.config.get('analytics.config.auto_run') !== false) { analytic.run(); app.log.debug(`Analytics auto running ${analytic.name}`); } if (app.config.get('analytics.config.profiles') && app.config.get(`analytics.config.profiles.${profile}`)) { app.config.get(`analytics.config.profiles.${profile}`).forEach(allowed => { const allowedAnalytic = allowed.split('.')[0]; const allowedMethod = allowed.split('.')[1]; if (allowedAnalytic === key && allowedMethod && analytic.methods.indexOf(allowedMethod) > -1) { Object.entries(frequency).forEach(([_time, _analyticNames]) => { if (_analyticNames.indexOf(allowed) > -1) { app.spools.analytics.analytics[_time].add(allowed); } }); } }); } }); return Promise.resolve(); }, copyDefaults: (app) => { app.config.set('analyticsDefaults', lodash_1.clone(app.config.get('analytics'))); return Promise.resolve({}); }, addAnalyticToCron: (app, time, analyticName) => { const allowedAnalyticStr = analyticName.split('.')[0]; const allowedMethodStr = analyticName.split('.')[1]; const analytic = app.analytics[allowedAnalyticStr][allowedMethodStr]; app.crons.AnalyticsCron.addAnalytic(time, analyticName, analytic); }, addAnalyticsToCron: (app) => { const frequency = Object.entries(app.spools.analytics.analytics); frequency.forEach(([_time, setter]) => { setter.forEach(analyticName => { exports.Utils.addAnalyticToCron(app, _time, analyticName); }); }); } };