nativescript-fabric
Version:
A NativeScript Plugin for fabric.io
144 lines • 6.03 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var application = require("application");
var fabric_common_1 = require("./fabric-common");
var helper_1 = require("./utils/helper");
var CrashlyticsAndroidPlugin = (function () {
function CrashlyticsAndroidPlugin() {
this.initDone = false;
}
CrashlyticsAndroidPlugin.prototype.getErrorDetails = function (args) {
var error = args.android;
if (!error || !error.nativeException) {
return {
name: error.name || 'Error',
nativeException: error.nativeException,
message: error.message || JSON.stringify(error),
stackTrace: error.stackTrace || null,
stack: error.stack || null
};
}
else {
return error.nativeException;
}
};
CrashlyticsAndroidPlugin.prototype.init = function () {
var _this = this;
try {
if (application.android) {
console.info('Fabric: Starting configuring Android platform');
application.android.on('activityStarted', function (activityEventData) {
console.info('Fabric: Activating Fabric kits');
io.fabric.sdk.android.Fabric.with(new io.fabric.sdk.android.Fabric.Builder(activityEventData.activity)
.kits([
new com.crashlytics.android.Crashlytics(),
new com.crashlytics.android.answers.Answers()
])
.debuggable(false)
.build());
_this.initDone = true;
console.info('Fabric: Init done');
});
application.on('uncaughtError', function (args) {
if (!args.android) {
var msg = args.toString();
try {
msg = helper_1.stringify(args);
}
catch (ignored) {
}
com.crashlytics.android.Crashlytics.getInstance().core.log(android.util.Log.ERROR, 'ERROR', msg);
}
else {
com.crashlytics.android.Crashlytics.getInstance().core.logException(_this.getErrorDetails(args));
}
});
}
}
catch (e) {
console.error('Unknown error during init of Fabric', e);
}
};
CrashlyticsAndroidPlugin.prototype.logSignUp = function (method, success) {
if (this.initDone) {
try {
var event_1 = new com.crashlytics.android.answers.SignUpEvent()
.putMethod(method)
.putSuccess(success);
com.crashlytics.android.answers.Answers.getInstance().logSignUp(event_1);
}
catch (e) {
console.error('Unknown logging signup in Fabric', e);
}
}
};
CrashlyticsAndroidPlugin.prototype.logLogin = function (method, success) {
if (this.initDone) {
try {
var event_2 = new com.crashlytics.android.answers.LoginEvent()
.putMethod(method)
.putSuccess(success);
com.crashlytics.android.answers.Answers.getInstance().logLogin(event_2);
}
catch (e) {
console.error('Unknown logging login in Fabric', e);
}
}
};
CrashlyticsAndroidPlugin.prototype.logContentView = function (id, name, type) {
if (this.initDone) {
try {
var event_3 = new com.crashlytics.android.answers.ContentViewEvent()
.putContentName(name)
.putContentType(type)
.putContentId(id);
com.crashlytics.android.answers.Answers.getInstance().logContentView(event_3);
}
catch (e) {
console.error('Unknown logging content view in Fabric', e);
}
}
};
CrashlyticsAndroidPlugin.prototype.logCustomEvent = function (withName, customAttributes) {
if (this.initDone) {
try {
var event_4 = new com.crashlytics.android.answers.CustomEvent(withName);
if (!!customAttributes) {
customAttributes.forEach(function (value, key) {
event_4.putCustomAttribute(key, value);
});
}
com.crashlytics.android.answers.Answers.getInstance().logCustom(event_4);
}
catch (e) {
console.error('Unknown logging custom event in Fabric', e);
}
}
};
CrashlyticsAndroidPlugin.prototype.logError = function (error, msg) {
if (this.initDone) {
try {
if (!error.android) {
if (!!msg) {
com.crashlytics.android.Crashlytics.getInstance().core.log(android.util.Log.ERROR, 'ERROR', msg);
}
if (error.toString) {
com.crashlytics.android.Crashlytics.getInstance().core.log(android.util.Log.ERROR, 'ERROR', error.toString());
}
else {
com.crashlytics.android.Crashlytics.getInstance().core.log(JSON.stringify(error));
}
}
else {
com.crashlytics.android.Crashlytics.getInstance().core.logException(this.getErrorDetails(error));
}
}
catch (e) {
console.error('Unknown logging error in Fabric', e);
}
}
};
return CrashlyticsAndroidPlugin;
}());
exports.Fabric = fabric_common_1.getInstance(CrashlyticsAndroidPlugin);
//# sourceMappingURL=fabric.android.js.map
;