aio-analytics
Version:
[Victor Tran](https://stackoverflow.com/users/11862231/victor-tran)
57 lines (56 loc) • 1.79 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
to[j] = from[i];
return to;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_ga_1 = __importDefault(require("react-ga"));
var isInit = false;
var initGA = function (gaId) {
if (gaId) {
react_ga_1.default.initialize(gaId);
isInit = true;
}
else {
isInit = false;
}
};
var logPageView = function (url) {
if (!isInit)
return;
react_ga_1.default.set({ page: url });
react_ga_1.default.pageview(url);
};
// args often contain category and action, value should be an valid object
var logEvent = function (args, value) {
if (!isInit)
return;
if (args && value) {
var params = Object.values(value).reduce(function (pre, current) {
if (typeof pre === 'string' || typeof pre === 'number') {
return [pre, current];
}
return __spreadArray(__spreadArray([], pre), [current]);
});
react_ga_1.default.event(args, params);
}
};
var logException = function (description, fatal) {
if (description === void 0) { description = ''; }
if (fatal === void 0) { fatal = false; }
if (!isInit)
return;
if (description) {
react_ga_1.default.exception({ description: description, fatal: fatal });
}
};
exports.default = {
initGA: initGA,
logPageView: logPageView,
logEvent: logEvent,
logException: logException
};