-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathTelerikAnalyticsService.ts
71 lines (59 loc) · 2.36 KB
/
TelerikAnalyticsService.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { AnalyticsBaseInfo, OperatingSystem } from './AnalyticsBaseInfo';
import * as os from 'os';
/**
* Google Universal Analytics Service
*/
// Hack needed for the Telerik Analytics JavaScript monitor to work in node environment
(global as any).XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
(global as any).XMLHttpRequest.prototype.withCredentials = false;
function capitalizeFirstLetter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
export class TelerikAnalyticsService {
private _eqatecMonitor: any;
private static getUserAgentString(): string {
let userAgentString: string;
let osType = os.type();
if(osType === "Windows_NT") {
userAgentString = "(Windows NT " + os.release() + ")";
} else if(osType === "Darwin") {
userAgentString = "(Mac OS X " + os.release() + ")";
} else {
userAgentString = "(" + osType +")";
}
return userAgentString;
}
constructor(projectKey: string, baseInfo: AnalyticsBaseInfo) {
require("./EqatecMonitor.min");
let eqatec = (global as any)._eqatec;
let settings = eqatec.createSettings(projectKey);
settings.useHttps = false;
settings.userAgent = TelerikAnalyticsService.getUserAgentString();
settings.version = baseInfo.extensionVersion;
settings.useCookies = false;
/*
settings.loggingInterface = {
logMessage: console.log,
logError: console.log
};
*/
//settings.testMode = true;
this._eqatecMonitor = eqatec.createMonitor(settings);
this._eqatecMonitor.setInstallationID(baseInfo.userId);
this._eqatecMonitor.setUserID(baseInfo.userId);
this._eqatecMonitor.start();
process.on('exit', () => {
this._eqatecMonitor.stop();
});
this._eqatecMonitor.trackFeature(`CLIVersion.${baseInfo.cliVersion}`);
this._eqatecMonitor.trackFeature(`ExtensionVersion.${baseInfo.extensionVersion}`);
}
public launchDebugger(request: string, platform: string): Promise<any> {
this._eqatecMonitor.trackFeature(`${capitalizeFirstLetter(request)}.${capitalizeFirstLetter(platform)}`);
return Promise.resolve();
}
public runRunCommand(platform: string): Promise<any> {
this._eqatecMonitor.trackFeature(`Run.${capitalizeFirstLetter(platform)}`);
return Promise.resolve();
}
}