Initialization constructor

Initialization({
  1. required NdkConfig config,
  2. required GlobalState globalState,
})

Implementation

Initialization({
  required this.config,
  required this.globalState,
}) {
  relayManager = RelayManager(
    nostrTransportFactory: _webSocketNostrTransportFactory,
    bootstrapRelays: config.bootstrapRelays,
    globalState: globalState,
  );
  switch (config.engine) {
    case NdkEngine.RELAY_SETS:
      engine = RelaySetsEngine(
        cacheManager: config.cache,
        globalState: globalState,
        relayManager: relayManager,
      );
      break;
    case NdkEngine.JIT:
      engine = JitEngine(
        eventSigner: config.eventSigner,
        cache: config.cache,
        ignoreRelays: config.ignoreRelays,
        seedRelays: config.bootstrapRelays,
        globalState: globalState,
      );
      break;
    default:
      throw UnimplementedError("Unknown engine");
  }
  cacheWrite = CacheWrite(config.cache);
  cacheRead = CacheRead(config.cache);

  requests = Requests(
    globalState: globalState,
    cacheRead: cacheRead,
    cacheWrite: cacheWrite,
    networkEngine: engine,
    eventVerifier: config.eventVerifier,
  );

  follows = Follows(
    requests: requests,
    cacheManager: config.cache,
    relayManager: relayManager,
  );

  metadatas = Metadatas(
    requests: requests,
    cacheManager: config.cache,
    relayManager: relayManager,
  );

  userRelayLists = UserRelayLists(
    requests: requests,
    cacheManager: config.cache,
    relayManager: relayManager,
  );

  lists = Lists(
    requests: requests,
    cacheManager: config.cache,
    relayManager: relayManager,
  );

  relaySets = RelaySets(
    cacheManager: config.cache,
    relayManager: relayManager,
    userRelayLists: userRelayLists,
  );
}