mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
Fix ts/js telemetry reporter
This commit is contained in:
parent
b02b49ebd0
commit
dac9f9a94e
|
@ -5,6 +5,7 @@
|
|||
|
||||
import * as path from 'path';
|
||||
import VsCodeTelemetryReporter from 'vscode-extension-telemetry';
|
||||
import { memoize } from './memoize';
|
||||
|
||||
interface IPackageInfo {
|
||||
name: string;
|
||||
|
@ -13,7 +14,6 @@ interface IPackageInfo {
|
|||
}
|
||||
|
||||
export default class TelemetryReporter {
|
||||
private _packageInfo: IPackageInfo | null = null;
|
||||
private _reporter: VsCodeTelemetryReporter | null = null;
|
||||
|
||||
dispose() {
|
||||
|
@ -28,48 +28,40 @@ export default class TelemetryReporter {
|
|||
) { }
|
||||
|
||||
public logTelemetry(eventName: string, properties?: { [prop: string]: string }) {
|
||||
if (this.reporter) {
|
||||
const reporter = this.reporter;
|
||||
if (reporter) {
|
||||
if (!properties) {
|
||||
properties = {};
|
||||
}
|
||||
properties['version'] = this.clientVersionDelegate();
|
||||
|
||||
this.reporter.sendTelemetryEvent(eventName, properties);
|
||||
reporter.sendTelemetryEvent(eventName, properties);
|
||||
}
|
||||
}
|
||||
|
||||
@memoize
|
||||
private get reporter(): VsCodeTelemetryReporter | null {
|
||||
if (typeof this._reporter !== 'undefined') {
|
||||
return this._reporter;
|
||||
}
|
||||
|
||||
if (this.packageInfo && this.packageInfo.aiKey) {
|
||||
this._reporter = new VsCodeTelemetryReporter(
|
||||
this.packageInfo.name,
|
||||
this.packageInfo.version,
|
||||
this.packageInfo.aiKey);
|
||||
} else {
|
||||
this._reporter = null;
|
||||
return this._reporter;
|
||||
}
|
||||
return this._reporter;
|
||||
return null;
|
||||
}
|
||||
|
||||
@memoize
|
||||
private get packageInfo(): IPackageInfo | null {
|
||||
if (this._packageInfo !== undefined) {
|
||||
return this._packageInfo;
|
||||
}
|
||||
const packagePath = path.join(__dirname, '..', '..', 'package.json');
|
||||
const extensionPackage = require(packagePath);
|
||||
if (extensionPackage) {
|
||||
this._packageInfo = {
|
||||
return {
|
||||
name: extensionPackage.name,
|
||||
version: extensionPackage.version,
|
||||
aiKey: extensionPackage.aiKey
|
||||
};
|
||||
} else {
|
||||
this._packageInfo = null;
|
||||
}
|
||||
|
||||
return this._packageInfo;
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue