Nudge constructor

Nudge({
  1. required String apiKey,
  2. required bool debugMode,
  3. required Region region,
  4. bool disableNudge = false,
  5. Function? registerRefreshToken,
  6. dynamic registerAuth(
    1. String? key
    )?,
})

Factory constructor to ensure a single instance of Nudge.

Implementation

factory Nudge({
  required String apiKey,
  required bool debugMode,
  required Region region,
  bool disableNudge = false,
  Function? registerRefreshToken,
  Function(String? key)? registerAuth,
}) {
  if (_instance == null) {
    // Replace if none exists OR if old one was auto-created
    NLogger.i("Creating new Nudge instance... ");
    _instance = Nudge._internal(
      apiKey: apiKey,
      debugMode: debugMode,
      region: region,
      nudgeDisabled: disableNudge,
      registerRefreshToken: registerRefreshToken,
      registerAuth: registerAuth,
    );
    _autoCreated = false; // explicit init replaces auto
    NLogger.i("Nudge instance created with API Key: $apiKey");
  }
  if (_autoCreated) {
  // auto-created placeholder exists → promote in-place
  _instance!._reconfigure(
    apiKey: apiKey,
    debugMode: debugMode,
    region: region,
    disableNudge: disableNudge,
    registerRefreshToken: registerRefreshToken,
    registerAuth: registerAuth,
  );
  // no new instance created
  NLogger.i("Nudge instance Updated with API Key: $apiKey");
  return _instance!;
}
// already a real instance → just return it
NLogger.i("Returning existing Nudge instance: $_instance");
return _instance!;
}