registerExtensions static method

void registerExtensions()

Register all Zenify service extensions

Call this once during app initialization, typically in main() Only registers in debug mode - no overhead in release builds.

Implementation

static void registerExtensions() {
  if (_registered) return;
  _registered = true;

  // Register scope inspection extension
  developer.registerExtension(
    'ext.zenify.getScopes',
    (method, parameters) async {
      final scopes = _buildScopeHierarchy();
      return developer.ServiceExtensionResponse.result(
        '{"scopes": ${_scopesToJson(scopes)}}',
      );
    },
  );

  // Register query cache extensions
  developer.registerExtension(
    'ext.zenify.getQueries',
    (method, parameters) async {
      final queries = _getQueryList();
      return developer.ServiceExtensionResponse.result(
        '{"queries": ${_queriesToJson(queries)}}',
      );
    },
  );

  developer.registerExtension(
    'ext.zenify.getQueryStats',
    (method, parameters) async {
      final stats = ZenQueryCache.instance.getStats();
      return developer.ServiceExtensionResponse.result(
        '{"stats": ${_mapToJson(stats)}}',
      );
    },
  );

  developer.registerExtension(
    'ext.zenify.invalidateQuery',
    (method, parameters) async {
      final queryKey = parameters['queryKey'];
      if (queryKey != null) {
        ZenQueryCache.instance.invalidateQuery(queryKey);
      }
      return developer.ServiceExtensionResponse.result('{"success": true}');
    },
  );

  developer.registerExtension(
    'ext.zenify.refetchQuery',
    (method, parameters) async {
      final queryKey = parameters['queryKey'];
      if (queryKey != null) {
        await ZenQueryCache.instance.refetchQuery(queryKey);
      }
      return developer.ServiceExtensionResponse.result('{"success": true}');
    },
  );

  developer.registerExtension(
    'ext.zenify.clearQueries',
    (method, parameters) async {
      ZenQueryCache.instance.clear();
      return developer.ServiceExtensionResponse.result('{"success": true}');
    },
  );

  // Register system stats extension
  developer.registerExtension(
    'ext.zenify.getStats',
    (method, parameters) async {
      final stats = ZenDebug.getSystemStats();
      return developer.ServiceExtensionResponse.result(
        '{"stats": ${_statsToJson(stats)}}',
      );
    },
  );

  // Register comprehensive metrics extension
  developer.registerExtension(
    'ext.zenify.getMetrics',
    (method, parameters) async {
      final metrics = _buildMetrics();
      return developer.ServiceExtensionResponse.result(
        '{"metrics": ${_mapToJson(metrics)}}',
      );
    },
  );
}