UNPKG

measurement-framework

Version:

Collection of Javascript code to implement a browser based measurement system for websites. It uses a cookie to store a users action on a webpage and let you map thoose actions to a particular state in the user journey.

49 lines (41 loc) 1.42 kB
/** * Singelton object to register all user functions. */ import dataLayerPush from "./helpers/dataLayerPush" import forEach from "lodash-es/forEach" import isUndefined from "lodash-es/isUndefined" import isFunction from "lodash-es/isFunction" class MeasurementFramework { constructor() { this.registered = [] this.vars = {} this.a = "__mf_lock" } register(func) { if (isFunction(func)) { this.registered.push(func) } else { console.warn("Measurement Framework received a non-function.", func) } } init() { let self = this if (isUndefined(window[this.a])) { console.log("Measurement Framework Loaded with " + this.registered.length + " tasks.") forEach(this.registered, function (registeredFunc) { let funcInitDataLayer = registeredFunc() forEach(funcInitDataLayer, function (value, key) { self.vars[key] = value }) }) window[this.a] = true dataLayerPush("Measurement Framework Loaded", { "mfDebug": this.registered.length + " tasks registered." }) return self.vars } else { console.log("Measurement Framework already loaded. Skipping initialization") } } } export default new MeasurementFramework()