33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.AnalyticsClient = void 0;
|
|
const posthog_node_1 = __importDefault(require("posthog-node"));
|
|
const constants_1 = require("../constants");
|
|
const ConfigManager_1 = require("../structures/ConfigManager");
|
|
class AnalyticsClient {
|
|
constructor() {
|
|
this.client = new posthog_node_1.default(constants_1.POSTHOG_TOKEN, {});
|
|
this.configManager = new ConfigManager_1.ConfigManager();
|
|
}
|
|
capture(event) {
|
|
if (this.configManager.config.analyticsDisabled)
|
|
return;
|
|
this.client.capture(event);
|
|
}
|
|
enable() {
|
|
this.configManager.removeKey("analyticsDisabled");
|
|
this.client.capture({ event: constants_1.AnalyticsEvent.OptIn, distinctId: "cli" });
|
|
}
|
|
disable() {
|
|
this.client.capture({ event: constants_1.AnalyticsEvent.OptOut, distinctId: "cli" });
|
|
this.configManager.setValue("analyticsDisabled", true);
|
|
}
|
|
status() {
|
|
return this.configManager.config.analyticsDisabled ? "disabled" : "enabled";
|
|
}
|
|
}
|
|
exports.AnalyticsClient = AnalyticsClient;
|