Skip to content

Commit 0aeac98

Browse files
committed
Add NullEventDispatcher
1 parent b31e48c commit 0aeac98

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

rector.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Rector\Privatization\Rector\Class_\FinalizeClassesWithoutChildrenRector;
88
use Rector\Set\ValueObject\LevelSetList;
99
use Rector\Set\ValueObject\SetList;
10+
use Rector\TypeDeclaration\Rector\ClassMethod\AddVoidReturnTypeWhereNoReturnRector;
1011

1112
return static function (RectorConfig $rectorConfig): void {
1213
$rectorConfig->paths([
@@ -15,6 +16,7 @@
1516

1617
$rectorConfig->skip([
1718
__DIR__.'/src/Testing/ClientFake.php' => FinalizeClassesWithoutChildrenRector::class,
19+
__DIR__.'/src/Events/NullEventDispatcher.php' => AddVoidReturnTypeWhereNoReturnRector::class,
1820
]);
1921

2022
$rectorConfig->rules([

src/Events/Dispatcher.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
class Dispatcher implements DispatcherContract
99
{
1010
public function __construct(
11-
private readonly ?EventDispatcherInterface $events
11+
private readonly EventDispatcherInterface $events
1212
) {
1313
}
1414

1515
public function dispatch(object $event): void
1616
{
17-
$this->events?->dispatch($event);
17+
$this->events->dispatch($event);
1818
}
1919
}

src/Events/NullEventDispatcher.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace OpenAI\Events;
4+
5+
use Psr\EventDispatcher\EventDispatcherInterface;
6+
7+
class NullEventDispatcher implements EventDispatcherInterface
8+
{
9+
public function dispatch(object $event) // @pest-ignore-type
10+
{
11+
return $event;
12+
}
13+
}

src/Factory.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use GuzzleHttp\Client as GuzzleClient;
88
use Http\Discovery\Psr18ClientDiscovery;
99
use OpenAI\Events\Dispatcher;
10+
use OpenAI\Events\NullEventDispatcher;
1011
use OpenAI\Transporters\HttpTransporter;
1112
use OpenAI\ValueObjects\ApiKey;
1213
use OpenAI\ValueObjects\Transporter\BaseUri;
@@ -172,7 +173,7 @@ public function make(): Client
172173

173174
$transporter = new HttpTransporter($client, $baseUri, $headers, $queryParams, $sendAsync);
174175

175-
$dispatcher = new Dispatcher($this->events);
176+
$dispatcher = new Dispatcher($this->events ?? new NullEventDispatcher);
176177

177178
return new Client($transporter, $dispatcher);
178179
}

0 commit comments

Comments
 (0)