init static method

Future<void> init({
  1. ZenStorage? storage,
  2. Map<String, ZenMutationHandler>? mutationHandlers,
  3. bool registerDevTools = true,
})

Initialize Zenify - call once at app startup

storage - Optional storage implementation for offline persistence mutationHandlers - Optional registry of mutation handlers for offline replay registerDevTools - Whether to register DevTools service extensions (default: true in debug mode)

Implementation

static Future<void> init({
  ZenStorage? storage,
  Map<String, ZenMutationHandler>? mutationHandlers,
  bool registerDevTools = true,
}) async {
  _lifecycleManager.initLifecycleObserver();

  // Register handlers if provided
  if (mutationHandlers != null) {
    ZenMutationQueue.instance.registerHandlers(mutationHandlers);
  }

  // Set global storage for queries
  if (storage != null) {
    ZenQueryCache.instance.setStorage(storage);
  }

  // Initialize persistence and queue (restores state)
  await ZenMutationQueue.instance.init(storage);

  // Register DevTools extensions in debug mode
  if (registerDevTools && kDebugMode) {
    try {
      ZenServiceExtensions.registerExtensions();
      ZenLogger.logDebug('DevTools service extensions registered');
    } catch (e) {
      // Silently fail if devtools not available
      ZenLogger.logDebug('DevTools extensions not available: $e');
    }
  }

  ZenLogger.logInfo('Zen initialized');
}