Skip to content

Commit 18fd480

Browse files
chore!: tempest 2.0 (#16)
1 parent a010f53 commit 18fd480

23 files changed

+892
-531
lines changed

.phpactor.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "/phpactor.schema.json",
3+
"language_server_phpstan.enabled": false
4+
}

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@
3535
],
3636
"require": {
3737
"php": "^8.4",
38-
"tempest/framework": "^1.6"
38+
"tempest/framework": "^2.0"
3939
},
4040
"require-dev": {
4141
"phpunit/phpunit": "^11.5.15",
42-
"carthage-software/mago": "1.0.0-beta.8"
42+
"carthage-software/mago": "1.0.0-beta.16"
4343
},
4444
"minimum-stability": "dev",
4545
"config": {

composer.lock

Lines changed: 790 additions & 476 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mago.toml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@ php-version = "8.4.0"
55
[source]
66
paths = ["src/", "tests/"]
77
includes = ["vendor"]
8-
excludes = []
8+
excludes = [
9+
"./vendor/symfony/cache/Traits/ValueWrapper.php",
10+
"./vendor/composer",
11+
"./tests"
12+
]
913

1014
[formatter]
1115
print-width = 120
1216
tab-width = 4
1317
use-tabs = false
14-
null-type-hint = "question"
18+
null-type-hint = "Question"
19+
1520

1621
[linter]
1722
integrations = ["phpunit"]
@@ -20,19 +25,17 @@ integrations = ["phpunit"]
2025
ambiguous-function-call = { enabled = false }
2126
literal-named-argument = { enabled = false }
2227
halstead = { effort-threshold = 7000 }
23-
parameter-type = { ignore-closure = true, ignore-arrow-function = true }
28+
interface-name = { enabled = false }
29+
trait-name = { enabled = false }
2430
return-type = { ignore-arrow-function = true }
25-
too-many-methods = { enabled = false }
26-
trait-name = { enabled = false}
27-
class-name = { enabled = false}
28-
interface-name = { enabled = false}
29-
cyclomatic-complexity = { threshold = 18 }
31+
parameter-type = { ignore-closure = true, ignore-arrow-function = true }
32+
3033

3134
[analyzer]
32-
excludes = ["tests"]
35+
excludes = ["./tests"]
3336
find-unused-definitions = true
3437
find-unused-expressions = false
3538
analyze-dead-code = false
3639
check-throws = true
3740
allow-possibly-undefined-array-keys = true
38-
perform-heuristic-checks = true
41+
perform-heuristic-checks = false

phpunit.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
<env name="BASE_URI" value="" />
3030
<env name="CACHE" value="null" />
3131
<env name="DISCOVERY_CACHE" value="true" />
32+
<env name="SIGNING_KEY" value="O0rt3MhQPTHBKqsq6QQzWqIuofsNQhzwubBMZLZfr34=" />
3233
</php>
33-
</phpunit>
34+
</phpunit>

src/Concerns/IsMergeableProp.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44

55
namespace NeoIsRecursive\Inertia\Concerns;
66

7-
use NeoIsRecursive\Inertia\Contracts\MergeableProp;
8-
97
/**
10-
* @implements MergeableProp
8+
* @require-implements \NeoIsRecursive\Inertia\Contracts\MergeableProp
119
*/
1210
trait IsMergeableProp
1311
{

src/Http/InertiaResponse.php

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use function Tempest\invoke;
2222
use function Tempest\Support\arr;
2323

24+
// @mago-expect lint:cyclomatic-complexity
2425
final class InertiaResponse implements Response
2526
{
2627
use IsResponse;
@@ -116,6 +117,7 @@ private static function resolvePartialProps(Request $request, string $component,
116117
string: $headers->get(Header::PARTIAL_EXCEPT) ?? '',
117118
));
118119

120+
/** @var mixed[] */
119121
$filtered = $only ? array_intersect_key($props, array_flip($only)) : $props;
120122

121123
return array_filter($filtered, static fn($key) => !in_array($key, $except, strict: true), ARRAY_FILTER_USE_KEY);
@@ -157,8 +159,8 @@ private static function resolvePropKeysThatShouldMerge(array $props, Request $re
157159
/**
158160
* Evaluates props recursively.
159161
* @pure
162+
* @mago-expect lint:no-boolean-flag-parameter
160163
*/
161-
// @mago-expect lint:no-boolean-flag-parameter
162164
private static function evaluateProps(array $props, Request $request, bool $unpackDotProps = true): array
163165
{
164166
return arr($props)->map(function ($value, string|int $key) use ($request): array {
@@ -170,13 +172,17 @@ private static function evaluateProps(array $props, Request $request, bool $unpa
170172
: $evaluated;
171173

172174
return [$key, $evaluated];
173-
})->reduce(function (array $acc, array $item) use ($unpackDotProps): array {
174-
[$key, $value] = $item;
175-
if ($unpackDotProps && is_string($key) && str_contains($key, needle: '.')) {
176-
return arr($acc)->set($key, $value)->toArray();
177-
}
178-
$acc[$key] = $value;
179-
return $acc;
180-
}, []);
175+
})->reduce(
176+
function (array $acc, array $item) use ($unpackDotProps): array {
177+
/** @var string|int $key */
178+
[$key, $value] = $item;
179+
if ($unpackDotProps && is_string($key) && str_contains($key, '.')) {
180+
return arr($acc)->set($key, $value)->toArray();
181+
}
182+
$acc[$key] = $value;
183+
return $acc;
184+
},
185+
[],
186+
);
181187
}
182188
}

src/Http/Middleware.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use NeoIsRecursive\Inertia\Inertia;
88
use NeoIsRecursive\Inertia\Support\Header;
9+
use Override;
910
use Tempest\Core\Priority;
1011
use Tempest\Http\Method;
1112
use Tempest\Http\Request;
@@ -23,12 +24,13 @@ public function __construct(
2324
private Session $session,
2425
) {}
2526

27+
#[Override]
2628
public function __invoke(Request $request, HttpMiddlewareCallable $next): Response
2729
{
2830
/** @var Response $response */
2931
$response = $next($request);
3032

31-
$response->addHeader(
33+
$response = $response->addHeader(
3234
key: 'Vary',
3335
value: Header::INERTIA,
3436
);
@@ -49,7 +51,7 @@ public function __invoke(Request $request, HttpMiddlewareCallable $next): Respon
4951
$response->status === Status::FOUND
5052
&& in_array($request->method, [Method::POST, Method::PUT, Method::PATCH], strict: true)
5153
) {
52-
$response->setStatus(Status::SEE_OTHER);
54+
$response = $response->setStatus(Status::SEE_OTHER);
5355
}
5456

5557
return $response;

src/Http/Middleware/EncryptHistory.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace NeoIsRecursive\Inertia\Http\Middleware;
66

77
use NeoIsRecursive\Inertia\Inertia;
8+
use Override;
89
use Tempest\Discovery\SkipDiscovery;
910
use Tempest\Http\Request;
1011
use Tempest\Http\Response;
@@ -18,6 +19,7 @@ public function __construct(
1819
private Inertia $inertia,
1920
) {}
2021

22+
#[Override]
2123
public function __invoke(Request $request, HttpMiddlewareCallable $next): Response
2224
{
2325
$this->inertia->encryptHistory();

src/Inertia.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public function location(string|Redirect $url): Response
9494

9595
if ($isInertiaRequest) {
9696
if ($url instanceof Redirect) {
97+
/** @var string */
9798
$url = $url->getHeader(name: 'Location')->values[0];
9899
}
99100

0 commit comments

Comments
 (0)