35 lines
862 B
JavaScript
35 lines
862 B
JavaScript
const throwIfUndefined = () => {
|
|
throw new TypeError('Argument must not be of type `undefined`');
|
|
};
|
|
|
|
// createEventMetaCreator({
|
|
// category: String,
|
|
// action: String,
|
|
// label?: String,
|
|
// value?: Number
|
|
// }) => () => Object
|
|
export const createEventMetaCreator = ({
|
|
// categories are features or namespaces of the app (capitalized):
|
|
// Map, Nav, Challenges, and so on
|
|
category = throwIfUndefined,
|
|
// can be a one word the event
|
|
// click, play, toggle.
|
|
// This is not a hard and fast rule
|
|
action = throwIfUndefined,
|
|
// any additional information
|
|
// when in doubt use redux action type
|
|
// or a short sentence describing the
|
|
// action
|
|
label,
|
|
// used to tack some specific value for a GA event
|
|
value
|
|
} = throwIfUndefined) => () => ({
|
|
analytics: {
|
|
type: 'event',
|
|
category,
|
|
action,
|
|
label,
|
|
value
|
|
}
|
|
});
|