segmentio / analytics-react-native

The hassle-free way to add analytics to your React-Native app.
https://segment.com/docs/sources/mobile/react-native/
MIT License
354 stars 181 forks source link

feat: add uuid and device info provider config #934

Closed oscb closed 2 months ago

oscb commented 2 months ago

feat: add uuid and device info provider config

Adds 2 new configuration options: uuidProvider and deviceInfoProvider to provide extensibility to other platforms like Windows, Web, Expo, etc.

uuidProvider

export type UUIDProvider = () => string;

Supplies a simple UUID generator. By default it will try to use react-native-get-random-values unless one specific provider is passed. If the lib is not installed it will rely on JS random generators and log a warning

deviceInfoProvider

export type DeviceInfoProvider = (
  config: GetContextConfig
) => Promise<NativeContextInfo>;

A function that returns the device context information. By default we will use our own native module if there's one available for the platform (Android & iOS).