react-native/ios/Native/Application/Shared/Emitter/EventEmitter.swift

40 lines
746 B
Swift

//
// EventEmitter.swift
// RNPlayground
//
// Created by Artur Gurgul on 02/08/2025.
//
import Foundation
protocol MessageEmitter {
func send(message: String)
}
class NullMessageEmitter: MessageEmitter {
func send(message: String) {
print("Warning: Emiter is not ready yet")
}
}
protocol EventEmitter {
func send(message: String)
func register(eventEmitter: Emitter)
}
class DefaultEventEmitter: EventEmitter {
private var eventEmitter: MessageEmitter = NullMessageEmitter()
func register(eventEmitter: Emitter) {
self.eventEmitter = eventEmitter
}
func send(message: String) {
eventEmitter.send(message: message)
}
var isReady: Bool {
return (eventEmitter is NullMessageEmitter) == false
}
}