UNPKG

@datadog/mobile-react-native

Version:

A client-side React Native module to interact with Datadog

153 lines (138 loc) 4.97 kB
/* * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ import type { Spec as NativeDdLogs } from './specs/NativeDdLogs'; import type { Spec as NativeDdRum } from './specs/NativeDdRum'; import type { Spec as NativeDdSdk } from './specs/NativeDdSdk'; import type { Spec as NativeDdTrace } from './specs/NativeDdTrace'; /** * In this file, native modules types extend the specs for TurboModules. * As we cannot use enums or classes in the specs, we override methods using them here. */ /** * The entry point to use Datadog's Logs feature. */ export type DdNativeLogsType = NativeDdLogs; /** * The entry point to use Datadog's Trace feature. */ export type DdNativeTraceType = NativeDdTrace; /** * A configuration object to initialize Datadog's features. */ export class DdNativeSdkConfiguration { constructor( readonly clientToken: string, readonly env: string, readonly applicationId: string, readonly nativeCrashReportEnabled: boolean, readonly sampleRate: number, readonly site: string, readonly trackingConsent: string, readonly additionalConfiguration: object // eslint-disable-next-line no-empty-function ) {} } /** * The entry point to initialize Datadog's features. */ export interface DdNativeSdkType extends NativeDdSdk { /** * Initializes Datadog's features. * @param configuration: The configuration to use. */ initialize(configuration: DdNativeSdkConfiguration): Promise<void>; } type ActionType = 'TAP' | 'SCROLL' | 'SWIPE' | 'BACK' | 'CUSTOM'; type ResourceKind = | 'image' | 'xhr' | 'beacon' | 'css' | 'document' | 'fetch' | 'font' | 'js' | 'media' | 'other' | 'native'; type ErrorSource = 'NETWORK' | 'SOURCE' | 'CONSOLE' | 'WEBVIEW' | 'CUSTOM'; /** * The entry point to use Datadog's RUM feature. */ export interface DdNativeRumType extends NativeDdRum { /** * Start tracking a RUM Action. * @param type: The action type (tap, scroll, swipe, back, custom). * @param name: The action name. * @param context: The additional context to send. * @param timestampMs: The timestamp when the action started (in milliseconds). If not provided, current timestamp will be used. */ startAction( type: ActionType, name: string, context: object, timestampMs: number ): Promise<void>; /** * Stop tracking the ongoing RUM Action. * @param type: The action type (tap, scroll, swipe, back, custom). * @param name: The action name. * @param context: The additional context to send. * @param timestampMs: The timestamp when the action stopped (in milliseconds). If not provided, current timestamp will be used. */ stopAction( type: ActionType, name: string, context: object, timestampMs: number ): Promise<void>; /** * Add a RUM Action. * @param type: The action type (tap, scroll, swipe, back, custom). * @param name: The action name. * @param context: The additional context to send. * @param timestampMs: The timestamp when the action occurred (in milliseconds). If not provided, current timestamp will be used. */ addAction( type: ActionType, name: string, context: object, timestampMs: number ): Promise<void>; /** * Stop tracking a RUM Resource. * @param key: The resource unique key identifier. * @param statusCode: The resource status code. * @param kind: The resource's kind (xhr, document, image, css, font, …). * @param size: The resource size in bytes. If size is unknown, use -1. * @param context: The additional context to send. * @param timestampMs: The timestamp when the resource stopped (in milliseconds). If not provided, current timestamp will be used. */ stopResource( key: string, statusCode: number, kind: ResourceKind, size: number, context: object, timestampMs: number ): Promise<void>; /** * Add a RUM Error. * @param message: The error message. * @param source: The error source (network, source, console, webview, custom). * @param stacktrace: The error stacktrace. * @param context: The additional context to send. * @param timestampMs: The timestamp when the error occurred (in milliseconds). If not provided, current timestamp will be used. * @param fingerprint: Optional custom error fingerprint. */ addError( message: string, source: ErrorSource, stacktrace: string, context: object, timestampMs: number, fingerprint: string | undefined ): Promise<void>; }