GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

ReactPromiseAdapter   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 83
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 9
eloc 20
dl 0
loc 83
ccs 0
cts 42
cp 0
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A all() 0 21 3
A then() 0 6 1
A create() 0 5 1
A createFulfilled() 0 5 1
A isThenable() 0 3 1
A convertThenable() 0 3 1
A createRejected() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace GraphQL\Executor\Promise\Adapter;
6
7
use GraphQL\Executor\Promise\Promise;
8
use GraphQL\Executor\Promise\PromiseAdapter;
9
use GraphQL\Utils\Utils;
10
use React\Promise\Promise as ReactPromise;
11
use React\Promise\PromiseInterface as ReactPromiseInterface;
12
use function React\Promise\all;
13
use function React\Promise\reject;
14
use function React\Promise\resolve;
15
16
class ReactPromiseAdapter implements PromiseAdapter
17
{
18
    /**
19
     * @inheritdoc
20
     */
21
    public function isThenable($value)
22
    {
23
        return $value instanceof ReactPromiseInterface;
24
    }
25
26
    /**
27
     * @inheritdoc
28
     */
29
    public function convertThenable($thenable)
30
    {
31
        return new Promise($thenable, $this);
32
    }
33
34
    /**
35
     * @inheritdoc
36
     */
37
    public function then(Promise $promise, ?callable $onFulfilled = null, ?callable $onRejected = null)
38
    {
39
        /** @var ReactPromiseInterface $adoptedPromise */
40
        $adoptedPromise = $promise->adoptedPromise;
41
42
        return new Promise($adoptedPromise->then($onFulfilled, $onRejected), $this);
43
    }
44
45
    /**
46
     * @inheritdoc
47
     */
48
    public function create(callable $resolver)
49
    {
50
        $promise = new ReactPromise($resolver);
51
52
        return new Promise($promise, $this);
53
    }
54
55
    /**
56
     * @inheritdoc
57
     */
58
    public function createFulfilled($value = null)
59
    {
60
        $promise = resolve($value);
61
62
        return new Promise($promise, $this);
63
    }
64
65
    /**
66
     * @inheritdoc
67
     */
68
    public function createRejected($reason)
69
    {
70
        $promise = reject($reason);
71
72
        return new Promise($promise, $this);
73
    }
74
75
    /**
76
     * @inheritdoc
77
     */
78
    public function all(array $promisesOrValues)
79
    {
80
        // TODO: rework with generators when PHP minimum required version is changed to 5.5+
81
        $promisesOrValues = Utils::map(
82
            $promisesOrValues,
83
            static function ($item) {
84
                return $item instanceof Promise ? $item->adoptedPromise : $item;
85
            }
86
        );
87
88
        $promise = all($promisesOrValues)->then(static function ($values) use ($promisesOrValues) : array {
89
            $orderedResults = [];
90
91
            foreach ($promisesOrValues as $key => $value) {
92
                $orderedResults[$key] = $values[$key];
93
            }
94
95
            return $orderedResults;
96
        });
97
98
        return new Promise($promise, $this);
99
    }
100
}
101