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.
Completed
Push — master ( cffa93...30a33e )
by Cees-Jan
07:44
created

functions.php ➔ childProcessPromiseClosure()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 13
nc 1
nop 2
dl 0
loc 20
rs 9.4285
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace WyriHaximus\React;
4
5
use Closure;
6
use React\EventLoop\LoopInterface;
7
use React\Promise\Deferred;
8
use React\Promise\PromiseInterface;
9
use Throwable;
10
use WyriHaximus\React\ChildProcess\Closure\ClosureChild;
11
use WyriHaximus\React\ChildProcess\Closure\MessageFactory;
12
use WyriHaximus\React\ChildProcess\Messenger\Factory;
13
use WyriHaximus\React\ChildProcess\Messenger\Messages\Payload;
14
use WyriHaximus\React\ChildProcess\Messenger\Messenger;
15
16
/**
17
 * @param  LoopInterface    $loop
18
 * @param  Closure          $closure
19
 * @return PromiseInterface
20
 */
21
function childProcessPromiseClosure(LoopInterface $loop, Closure $closure): PromiseInterface
22
{
23
    return Factory::parentFromClass(ClosureChild::class, $loop)->then(function (Messenger $messenger) use ($closure) {
24
        $deferred = new Deferred();
25
        $messenger->on('error', function (Throwable $throwable) use ($deferred, $messenger) {
26
            $deferred->reject($throwable);
27
            $messenger->softTerminate();
28
        });
29
30
        $messenger->rpc(MessageFactory::rpc($closure))->done(function (Payload $payload) use ($deferred, $messenger) {
31
            $deferred->resolve($payload->getPayload());
32
            $messenger->softTerminate();
33
        }, function (Throwable $throwable) use ($deferred, $messenger) {
34
            $deferred->reject($throwable);
35
            $messenger->softTerminate();
36
        });
37
38
        return $deferred->promise();
39
    });
40
}
41