Skip to content

Commit c9c2ae9

Browse files
committed
Make default eagerness configurable
1 parent 357c5e8 commit c9c2ae9

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

src/LaravelSpeculationRulesApiServiceProvider.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@ public function configurePackage(Package $package): void
1818

1919
public function bootingPackage(): void
2020
{
21-
Route::macro('prerender', function (string $eagerness = 'moderate') {
21+
Route::macro('prerender', function (?string $eagerness = null) {
2222
LaravelSpeculationRulesApi::$routeSpeculationRules['prerender'][] = [
23-
'eagerness' => $eagerness,
23+
'eagerness' => $eagerness ?? config('speculation-rules-api.default_eagerness'),
2424
'uri' => $this->uri,
2525
];
2626

2727
return $this;
2828
});
2929

30-
Route::macro('prefetch', function (string $eagerness = 'moderate') {
30+
Route::macro('prefetch', function (?string $eagerness = null) {
3131
LaravelSpeculationRulesApi::$routeSpeculationRules['prefetch'][] = [
32-
'eagerness' => $eagerness,
32+
'eagerness' => $eagerness ?? config('speculation-rules-api.default_eagerness'),
3333
'uri' => $this->uri,
3434
];
3535

tests/SpeculationRulesApiTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,25 @@
2828
expect(LaravelSpeculationRulesApi::$routeSpeculationRules)->toMatchSnapshot();
2929
});
3030

31+
test('default eagerness', function () {
32+
LaravelSpeculationRulesApi::$routeSpeculationRules = [
33+
'prerender' => [],
34+
'prefetch' => [],
35+
];
36+
37+
Route::get('page-1', fn () => null)->prerender();
38+
39+
expect(data_get(LaravelSpeculationRulesApi::$routeSpeculationRules, 'prerender.0.eagerness'))
40+
->toBe('moderate');
41+
42+
config()->set('speculation-rules-api.default_eagerness', 'eager');
43+
44+
Route::get('page-1', fn () => null)->prerender();
45+
46+
expect(data_get(LaravelSpeculationRulesApi::$routeSpeculationRules, 'prerender.1.eagerness'))
47+
->toBe('eager');
48+
});
49+
3150
test('speculation rules are merged properly', function () {
3251
LaravelSpeculationRulesApi::$routeSpeculationRules = [
3352
'prerender' => [],

0 commit comments

Comments
 (0)