trackAnalyticsEvent<T> method

Future<T> trackAnalyticsEvent<T>({
  1. required String tool,
  2. required String eventName,
  3. Map<String, dynamic>? payload,
  4. required FutureOr<T> onTrack(),
  5. int statusCode = 200,
})

Auto-log analytics when your tracking callback is hit.

Use this to wrap SDK calls so the event is logged whether sync or async.

Implementation

Future<T> trackAnalyticsEvent<T>({
  required String tool,
  required String eventName,
  Map<String, dynamic>? payload,
  required FutureOr<T> Function() onTrack,
  int statusCode = 200,
}) async {
  final result = await Future.sync(onTrack);
  logAnalyticsEvent(
    tool: tool,
    eventName: eventName,
    payload: payload,
    statusCode: statusCode,
  );
  return result;
}