UNPKG

@dynatrace/react-native-plugin

Version:

This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.

179 lines (137 loc) 4.52 kB
import type { TurboModule } from 'react-native'; // eslint-disable-next-line no-duplicate-imports import { TurboModuleRegistry } from 'react-native'; // eslint-disable-next-line import/no-internal-modules import { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes'; export interface Spec extends TurboModule { // Event Listener for AppStart addListener: (eventName: string) => void; removeListeners: (count: number) => void; getConstants: () => { DATA_COLLECTION_OFF: string; DATA_COLLECTION_PERFORMANCE: string; DATA_COLLECTION_USERBEHAVIOR: string; PLATFORM_ANDROID: string; PLATFORM_IOS: string; }; start(configuration: UnsafeObject): Promise<boolean>; enterAction(name: string, key: string, platform?: string): void; enterManualAction(name: string, key: string, platform?: string): void; enterManualActionWithParent( name: string, key: string, parentKey: string, platform?: string, ): void; leaveAction(key: string, leave: boolean, platform?: string): void; cancelAction(key: string, platfrom?: string): void; endVisit(platform?: string): void; reportErrorWithoutStacktrace( errorName: string, errorCode: number, platform?: string, ): void; reportError( errorName: string, errorValue: string, reason: string, stacktrace: string, platform?: string, ): void; // eslint-disable-next-line max-len reportCrash( errorName: string, reason: string, stacktrace: string, isRealError: boolean, platform?: string, ): void; storeCrash(errorName: string, reason: string, stacktrace: string): void; reportErrorInAction( key: string, errorName: string, errorCode: number, platform?: string, ): void; reportValue( key: string, valueName: string, value: string, platform?: string, ): void; getRequestTag(key: string, url: string): Promise<string>; identifyUser(user: string, plaform?: string): void; reportEventInAction( actionKey: string, name: string, platform?: string, ): void; reportStringValueInAction( actionKey: string, name: string, value: string, platform?: string, ): void; reportIntValueInAction( actionKey: string, name: string, value: number, platform?: string, ): void; reportDoubleValueInAction( actionKey: string, name: string, value: number, platform?: string, ): void; sendBizEvent( type: string, attributes: UnsafeObject, plaform?: string, ): void; forwardEvent(attributes: UnsafeObject): void; forwardAppStartEvent( attributes: UnsafeObject, appStartKeys: string[], ): void; setGPSLocation( latitude: number, longitude: number, platform?: string, ): void; flushEvents(platform?: string): void; isCrashReportingOptedIn(platform?: string): Promise<boolean>; setCrashReportingOptedIn(crashReporting: boolean, platform?: string): void; setDataCollectionLevel(collectionLevel: string, platform?: string): void; getDataCollectionLevel(platform?: string): Promise<string>; // eslint-disable-next-line @typescript-eslint/ban-types setBeaconHeaders(headers?: Object | null, platform?: string): void; getUserPrivacyOptions(platform?: string): Promise<NativeUserPrivacyOptions>; applyUserPrivacyOptions( userPrivacyOptions: UnsafeObject, platform?: string, ): void; startWebRequestTiming(requestTag: string, url: string): void; stopWebRequestTiming( requestTag: string, url: string, responseCode: number, responseMessage: string, ): void; stopWebRequestTimingWithSize( requestTag: string, url: string, responseCode: number, responseMessage: string, requestSize: number, responseSize: number, ): void; startView(name: string): void; stopView(): void; } // eslint-disable-next-line @typescript-eslint/consistent-type-definitions export type NativeUserPrivacyOptions = { dataCollectionLevel: string; crashReportingOptedIn: boolean; }; export default TurboModuleRegistry.getEnforcing<Spec>('DynatraceBridge');