Momentum constructor

Momentum({
  1. Key? key,
  2. Future<void> initializer()?,
  3. Widget? child,
  4. Widget? appLoader,
  5. required List<MomentumController> controllers,
  6. List<MomentumService>? services,
  7. ResetAll? onResetAll,
  8. bool? disabledPersistentState,
  9. bool? enableLogging,
  10. int? maxTimeTravelSteps,
  11. bool? lazy,
  12. int? minimumBootstrapTime,
  13. BootstrapStrategy? strategy,
  14. PersistSaver? persistSave,
  15. PersistGet? persistGet,
  16. String? testSessionName,
  17. void restartCallback()?,
})

Configure your app with Momentum root widget.

The parameter child is not required for unit testing.

Implementation

factory Momentum({
  Key? key,
  Future<void> Function()? initializer,
  Widget? child,
  Widget? appLoader,
  required List<MomentumController> controllers,
  List<MomentumService>? services,
  ResetAll? onResetAll,
  bool? disabledPersistentState,
  bool? enableLogging,
  int? maxTimeTravelSteps,
  bool? lazy,
  int? minimumBootstrapTime,
  BootstrapStrategy? strategy,
  PersistSaver? persistSave,
  PersistGet? persistGet,
  String? testSessionName,
  void Function()? restartCallback,
}) {
  return Momentum._internal(
    key: key,
    child: _MomentumRoot(
      initializer: initializer,
      child: child,
      appLoader: appLoader,
      controllers:
          controllers, // UPDATE: remove unnecessary null check for null-safety migration
      services: services ?? [],
      disabledPersistentState: disabledPersistentState,
      enableLogging: enableLogging,
      maxTimeTravelSteps: maxTimeTravelSteps,
      lazy: lazy,
      minimumBootstrapTime: minimumBootstrapTime,
      strategy: strategy,
    ),
    initializer: initializer,
    controllers: controllers,
    services: services,
    disabledPersistentState: disabledPersistentState,
    enableLogging: enableLogging,
    maxTimeTravelSteps: maxTimeTravelSteps,
    lazy: lazy,
    strategy: strategy,
    minimumBootstrapTime: minimumBootstrapTime,
    onResetAll: onResetAll,
    persistSave: persistSave,
    persistGet: persistGet,
    restartCallback: restartCallback,
  );
}