import Foundation

@objc(EventEmitter)
class EventEmitter: RCTEventEmitter {

  public static var shared: EventEmitter!

  override init() {
    super.init()
    EventEmitter.shared = self
  }

  override func supportedEvents() -> [String]! {
    return Event.allCases.map { $0.rawValue }
  }

  public func sendEvent(type: Event, data: [String: Any]) {
    self.sendEvent(withName: type.rawValue, body: data)
  }

  @objc
  override static func requiresMainQueueSetup() -> Bool {
    return true
  }
}
