From b46b719498d32bc24b731093ebfe8b45403d1318 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 16 Jul 2018 12:40:17 +1200 Subject: [PATCH] BitAnalytics with Firebase parameter name fix. --- bitanalytics/bitanalytics-0.1.0.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/bitanalytics/bitanalytics-0.1.0.js b/bitanalytics/bitanalytics-0.1.0.js index cf85b3c14..db149e481 100644 --- a/bitanalytics/bitanalytics-0.1.0.js +++ b/bitanalytics/bitanalytics-0.1.0.js @@ -6547,13 +6547,26 @@ var FirebaseChannel = /** @class */ (function (_super) { */ FirebaseChannel.prototype.postEvent = function (name, params) { var _this = this; + var sanitizedParams = this.sanitizeParams(params); if (!this.isReady) { - this.enqueue(function () { _this.postEvent(name, params); }); + this.enqueue(function () { _this.postEvent(name, sanitizedParams); }); } else { - this.firebaseInstance.logEvent(name, params); + this.firebaseInstance.logEvent(name, sanitizedParams); } }; + // [Firebase/Analytics][I-ACS013002] Event parameter name must contain only letters, numbers, or underscores + FirebaseChannel.prototype.sanitizeParams = function (params) { + var keys = Object.keys(params); + var keysLength = keys.length; + var sanitized = {}; + for (var i = 0; i < keysLength; i++) { + var key = keys[i]; + var cleanKey = key.replace('-', '_').replace(/[\W]+/g, ''); + sanitized[cleanKey] = params[key]; + } + return sanitized; + }; return FirebaseChannel; }(channel_1.default)); exports.default = FirebaseChannel;