office-addin-usage-data
Version:
Provides infrastructure to send usage data events and exceptions.
142 lines (114 loc) • 5.1 kB
text/typescript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/* eslint-disable @typescript-eslint/no-unused-vars */
/**
* Specifies the usage data infrastructure the user wishes to use
* @enum Application Insights: Microsoft Azure service used to collect and query through data
* @deprecated Usage data reporting has been removed
*/
export enum UsageDataReportingMethod {
applicationInsights = "applicationInsights",
}
/**
* Level controlling what type of usage data is being sent
* @enum off: off level of usage data, sends no usage data
* @enum on: on level of usage data, sends errors and events
* @deprecated Usage data reporting has been removed
*/
export enum UsageDataLevel {
off = "off",
on = "on",
}
/**
* Defines an error that is expected to happen given some situation
* @member message Message to be logged in the error
*/
export class ExpectedError extends Error {
constructor(message: string | undefined) {
super(message);
// need to adjust the prototype after super()
// See https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
Object.setPrototypeOf(this, ExpectedError.prototype);
}
}
/**
* UpdateData options
* @deprecated Usage data reporting has been removed
*/
export interface IUsageDataOptions {
groupName?: string;
projectName: string;
connectionString?: string;
instrumentationKey?: string;
promptQuestion?: string;
raisePrompt?: boolean;
usageDataLevel?: UsageDataLevel;
method?: UsageDataReportingMethod;
isForTesting?: boolean;
deviceID?: string;
}
/**
* Usage data class - all methods are now no-ops since telemetry has been removed
* @deprecated Usage data reporting has been removed. This class is retained for API compatibility only.
*/
export class OfficeAddinUsageData {
private options: IUsageDataOptions;
constructor(usageDataOptions: IUsageDataOptions) {
this.options = {
usageDataLevel: UsageDataLevel.off,
...usageDataOptions,
};
}
/** @deprecated No-op - usage data reporting has been removed */
public async reportEvent(_eventName: string, _data: object): Promise<void> {}
/** @deprecated No-op - usage data reporting has been removed */
public async reportEventApplicationInsights(_eventName: string, _data: object): Promise<void> {}
/** @deprecated No-op - usage data reporting has been removed */
public async reportError(_errorName: string, _err: Error): Promise<void> {}
/** @deprecated No-op - usage data reporting has been removed */
public async reportErrorApplicationInsights(_errorName: string, _err: Error): Promise<void> {}
/** @deprecated No-op - usage data reporting has been removed */
public usageDataOptIn(_testData?: boolean, _testResponse?: string): void {}
/** @deprecated No-op - usage data reporting has been removed */
public setUsageDataOff(): void {}
/** @deprecated No-op - usage data reporting has been removed */
public setUsageDataOn(): void {}
/** @deprecated Always returns false - usage data reporting has been removed */
public isUsageDataOn(): boolean {
return false;
}
/** @deprecated Returns empty string - usage data reporting has been removed */
public getUsageDataKey(): string {
return "";
}
/** @deprecated Always returns 0 - usage data reporting has been removed */
public getEventsSent(): number {
return 0;
}
/** @deprecated Always returns 0 - usage data reporting has been removed */
public getExceptionsSent(): number {
return 0;
}
/** @deprecated Always returns "off" - usage data reporting has been removed */
public getUsageDataLevel(): string {
return UsageDataLevel.off;
}
/** @deprecated Returns error unchanged - usage data reporting has been removed */
public maskFilePaths(err: Error): Error {
return err;
}
/** @deprecated No-op - usage data reporting has been removed */
public reportException(_method: string, _err: Error | string, _data?: object): void {}
/** @deprecated No-op - usage data reporting has been removed */
public reportExpectedException(_method: string, _err: Error | string, _data?: object): void {}
/** @deprecated No-op - usage data reporting has been removed */
public reportSuccess(_method: string, _data?: object): void {}
/** @deprecated No-op - usage data reporting has been removed */
public sendUsageDataException(_method: string, _err: Error | string, _data?: object): void {}
/** @deprecated No-op - usage data reporting has been removed */
public sendUsageDataSuccessEvent(_method: string, _data?: object): void {}
/** @deprecated No-op - usage data reporting has been removed */
public sendUsageDataSuccessfulFailEvent(_method: string, _data?: object): void {}
/** @deprecated No-op - usage data reporting has been removed */
public sendUsageDataEvent(_data?: object): void {}
}