private function fireWildcardEvents($eventName, $data, $resultType)
{
// Get event prefix
$eventPrefix = $this->str($eventName)->subString(0, -1)->val();
// Find events starting with the prefix
$events = [];
foreach ($this->events as $eventName => $eventListeners) {
if ($this->str($eventName)->startsWith($eventPrefix)) {
$events[$eventName] = $eventListeners;
}
}
if ($this->arr($events)->count() > 0) {
if (!$this->isInstanceOf($data, '\\Webiny\\Component\\EventManager\\Event')) {
$data = new Event($data);
}
$results = $this->arr();
foreach ($events as $eventListeners) {
$result = $this->eventProcessor->process($eventListeners, $data, $resultType);
$results->merge($result);
}
return $results->val();
}
return null;
}