Skip to content

Commit 9181113

Browse files
authored
Merge pull request #57 from simPod/generic-interface
Make PromiseInterface generic so it allows typing Promises
2 parents 56ca285 + 544408d commit 9181113

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

lib/promise-adapter/src/Adapter/GuzzleHttpPromiseAdapter.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
use GuzzleHttp\Promise\RejectedPromise;
1818
use Overblog\PromiseAdapter\PromiseAdapterInterface;
1919

20+
/**
21+
* @implements PromiseAdapterInterface<PromiseInterface>
22+
*/
2023
class GuzzleHttpPromiseAdapter implements PromiseAdapterInterface
2124
{
2225
/**

lib/promise-adapter/src/Adapter/ReactPromiseAdapter.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
use React\Promise\PromiseInterface;
2020
use React\Promise\RejectedPromise;
2121

22+
/**
23+
* @implements PromiseAdapterInterface<Promise>
24+
*/
2225
class ReactPromiseAdapter implements PromiseAdapterInterface
2326
{
2427
/**

lib/promise-adapter/src/Adapter/WebonyxGraphQLSyncPromiseAdapter.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
use GraphQL\Executor\Promise\Promise;
1818
use Overblog\PromiseAdapter\PromiseAdapterInterface;
1919

20+
/**
21+
* @implements PromiseAdapterInterface<Promise>
22+
*/
2023
class WebonyxGraphQLSyncPromiseAdapter implements PromiseAdapterInterface
2124
{
2225
/** @var callable[] */

lib/promise-adapter/src/PromiseAdapterInterface.php

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
namespace Overblog\PromiseAdapter;
1313

14+
/**
15+
* @template TPromise
16+
*/
1417
interface PromiseAdapterInterface
1518
{
1619
/**
@@ -20,7 +23,7 @@ interface PromiseAdapterInterface
2023
* @param $reject
2124
* @param callable $canceller
2225
*
23-
* @return mixed a Promise
26+
* @return TPromise a Promise
2427
*/
2528
public function create(&$resolve = null, &$reject = null, callable $canceller = null);
2629

@@ -29,7 +32,7 @@ public function create(&$resolve = null, &$reject = null, callable $canceller =
2932
*
3033
* @param mixed $promiseOrValue
3134
*
32-
* @return mixed a full filed Promise
35+
* @return TPromise a full filed Promise
3336
*/
3437
public function createFulfilled($promiseOrValue = null);
3538

@@ -39,7 +42,7 @@ public function createFulfilled($promiseOrValue = null);
3942
*
4043
* @param mixed $reason
4144
*
42-
* @return mixed a rejected promise
45+
* @return TPromise a rejected promise
4346
*/
4447
public function createRejected($reason);
4548

@@ -49,7 +52,7 @@ public function createRejected($reason);
4952
*
5053
* @param mixed $promisesOrValues Promises or values.
5154
*
52-
* @return mixed a Promise
55+
* @return TPromise a Promise
5356
*/
5457
public function createAll($promisesOrValues);
5558

@@ -66,14 +69,14 @@ public function isPromise($value, $strict = false);
6669
/**
6770
* Cancel a promise
6871
*
69-
* @param $promise
72+
* @param TPromise $promise
7073
*/
7174
public function cancel($promise);
7275

7376
/**
7477
* wait for Promise to complete
75-
* @param mixed $promise
76-
* @param bool $unwrap
78+
* @param TPromise $promise
79+
* @param bool $unwrap
7780
*
7881
* @return mixed
7982
*/

0 commit comments

Comments
 (0)