@theoplayer/react-native-analytics-comscore
Version:
Comscore analytics connector for @theoplayer/react-native
53 lines (45 loc) • 1.72 kB
text/typescript
import type { NativeHandleType, THEOplayer } from 'react-native-theoplayer';
import type { ComscoreConfiguration } from '../api/ComscoreConfiguration';
import type { ComscoreMetadata } from '../api/ComscoreMetadata';
import { NativeModules } from 'react-native';
const TAG = 'ComscoreConnector';
const ERROR_MSG = 'ComscoreConnectorAdapter Error';
export class ComscoreConnectorAdapter {
private readonly nativeHandle: NativeHandleType;
constructor(player: THEOplayer, comscoreMetadata: ComscoreMetadata, comscoreConfig: ComscoreConfiguration) {
try {
this.nativeHandle = player.nativeHandle || -1;
NativeModules.ComscoreModule.initialize(this.nativeHandle, comscoreMetadata, comscoreConfig);
} catch (error: unknown) {
console.error(TAG, `${ERROR_MSG}: ${error}`);
}
}
update(metadata: ComscoreMetadata): void {
try {
NativeModules.ComscoreModule.update(this.nativeHandle, metadata);
} catch (error: unknown) {
console.error(TAG, `${ERROR_MSG}: ${error}`);
}
}
setPersistentLabel(label: string, value: string): void {
try {
NativeModules.ComscoreModule.setPersistentLabel(this.nativeHandle, label, value);
} catch (error: unknown) {
console.error(TAG, `${ERROR_MSG}: ${error}`);
}
}
setPersistentLabels(labels: { [key: string]: string }): void {
try {
NativeModules.ComscoreModule.setPersistentLabels(this.nativeHandle, labels);
} catch (error: unknown) {
console.error(TAG, `${ERROR_MSG}: ${error}`);
}
}
destroy(): void {
try {
NativeModules.ComscoreModule.destroy(this.nativeHandle);
} catch (error: unknown) {
console.error(TAG, `${ERROR_MSG}: ${error}`);
}
}
}