func sendPayload()

in packages/amplify_datastore/ios/Classes/DataStoreHubEventStreamHandler.swift [93:186]


    func sendPayload(_ payload: HubPayload) {
        var flutterEvent: [String: Any]?
        switch payload.eventName {
        case HubPayload.EventName.DataStore.networkStatus :
            do {
                let networkStatus =  try FlutterNetworkStatusEvent (payload: payload)
                flutterEvent = networkStatus.toValueMap()
            } catch {
                print("Failed to parse and send networkStatus event:  \(error)")
            }
        case HubPayload.EventName.DataStore.outboxStatus :
            do {
                let outboxStatus =  try FlutterOutboxStatusEvent (payload: payload)
                flutterEvent = outboxStatus.toValueMap()
            } catch {
                print("Failed to parse and send outboxStatus event:  \(error)")
            }
        case HubPayload.EventName.DataStore.subscriptionsEstablished :
            do {
                let subscriptionsEstablished =  try FlutterSubscriptionsEstablishedEvent(payload: payload)
                flutterEvent = subscriptionsEstablished.toValueMap()
            } catch {
                print("Failed to parse and send subscriptionsEstablished event:  \(error)")
            }
        case HubPayload.EventName.DataStore.syncQueriesStarted :
            do {
                let syncQueriesStarted =  try FlutterSyncQueriesStartedEvent(payload: payload)
                flutterEvent = syncQueriesStarted.toValueMap()
            } catch {
                print("Failed to parse and send syncQueriesStarted event:  \(error)")
            }
        case HubPayload.EventName.DataStore.modelSynced :
            do {
                let modelSynced = try FlutterModelSyncedEvent(payload: payload)
                flutterEvent = modelSynced.toValueMap()
            } catch {
                print("Failed to parse and send modelSynced event:  \(error)")
            }
        case HubPayload.EventName.DataStore.syncQueriesReady :
            do {
                let syncQueriesReady =  try FlutterSyncQueriesReadyEvent(payload: payload)
                flutterEvent = syncQueriesReady.toValueMap()
            } catch {
                print("Failed to parse and send syncQueriesReady event:  \(error)")
            }
        case HubPayload.EventName.DataStore.ready :
            do {
                let ready = try FlutterReadyEvent(payload: payload)
                flutterEvent = ready.toValueMap()
            } catch {
                print("Failed to parse and send ready event:  \(error)")
            }
        case HubPayload.EventName.DataStore.outboxMutationEnqueued :
            do {
                guard let outboxMutationEnqueued = payload.data as? OutboxMutationEvent else {
                    throw FlutterDataStoreError.hubEventCast
                }
                let schemaRegistries = try self.ensureSchemaRegistries()
                let flutterOutboxMutationEnqueued = try FlutterOutboxMutationEnqueuedEvent(
                    outboxMutationEnqueued: outboxMutationEnqueued,
                    eventName: payload.eventName,
                    modelSchemaRegistry: schemaRegistries.modelSchemaRegistry,
                    customTypeSchemaRegistry: schemaRegistries.customTypeSchemaRegistry
                )
                flutterEvent = flutterOutboxMutationEnqueued.toValueMap()
            } catch {
                print("Failed to parse and send outboxMutationEnqueued event:  \(error)")
            }
        case HubPayload.EventName.DataStore.outboxMutationProcessed :
            do {
                guard let outboxMutationProcessed = payload.data as? OutboxMutationEvent else {
                    throw FlutterDataStoreError.hubEventCast
                }
                let schemaRegistries = try self.ensureSchemaRegistries()
                let flutterOutboxMutationProcessed = try FlutterOutboxMutationProcessedEvent(
                    outboxMutationProcessed: outboxMutationProcessed,
                    eventName: payload.eventName,
                    modelSchemaRegistry: schemaRegistries.modelSchemaRegistry,
                    customTypeSchemaRegistry: schemaRegistries.customTypeSchemaRegistry
                )
                flutterEvent = flutterOutboxMutationProcessed.toValueMap()
            } catch {
                print("Failed to parse and send outboxMutationProcessed event:  \(error)")
            }
        case HubPayload.EventName.Amplify.configured:
            print("DataStorePlugin successfully initialized")
        default:
            print("Unhandled DataStoreHubEvent: \(payload.eventName) \(payload.data ?? "")" )
        }
        
        if let flutterEvent = flutterEvent {
            sendEvent(flutterEvent: flutterEvent)
        }
    }