diff --git a/src/FontAwesome/AbstractFontAwesome.php b/src/FontAwesome/AbstractFontAwesome.php index 7e83a30..6ccfd64 100644 --- a/src/FontAwesome/AbstractFontAwesome.php +++ b/src/FontAwesome/AbstractFontAwesome.php @@ -6,6 +6,7 @@ use Aerni\FontAwesome\Data\Icon; use Aerni\FontAwesome\Data\Icons; use Illuminate\Support\Collection; +use Illuminate\Support\Facades\Cache; abstract class AbstractFontAwesome implements FontAwesome { @@ -18,7 +19,7 @@ public function icon(string $id): ?Icon public function styles(): Collection { - return $this->icons()->styles(); + return Cache::rememberForever('font_awesome::styles', fn () => $this->icons()->styles()); } protected function collectIcons(array $icons): Icons diff --git a/src/FontAwesome/KitFontAwesome.php b/src/FontAwesome/KitFontAwesome.php index 622dfee..aa4bdbf 100644 --- a/src/FontAwesome/KitFontAwesome.php +++ b/src/FontAwesome/KitFontAwesome.php @@ -2,14 +2,13 @@ namespace Aerni\FontAwesome\FontAwesome; -use Aerni\FontAwesome\Contracts\FontAwesome; use Aerni\FontAwesome\Data\Icons; use Aerni\FontAwesome\Data\Kit; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Http; -class KitFontAwesome extends AbstractFontAwesome implements FontAwesome +class KitFontAwesome extends AbstractFontAwesome { protected string $apiEndpoint = 'https://api.fontawesome.com'; diff --git a/src/FontAwesome/LocalFontAwesome.php b/src/FontAwesome/LocalFontAwesome.php index b6d7d8c..45af75d 100644 --- a/src/FontAwesome/LocalFontAwesome.php +++ b/src/FontAwesome/LocalFontAwesome.php @@ -2,13 +2,12 @@ namespace Aerni\FontAwesome\FontAwesome; -use Aerni\FontAwesome\Contracts\FontAwesome; use Aerni\FontAwesome\Data\Icons; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Str; use Statamic\Facades\YAML; -class LocalFontAwesome extends AbstractFontAwesome implements FontAwesome +class LocalFontAwesome extends AbstractFontAwesome { public function __construct(protected string $metadata, protected string $css) { diff --git a/src/Http/Controllers/FontAwesomeController.php b/src/Http/Controllers/FontAwesomeController.php index 8bd9f48..2ff2fc1 100644 --- a/src/Http/Controllers/FontAwesomeController.php +++ b/src/Http/Controllers/FontAwesomeController.php @@ -4,11 +4,14 @@ use Aerni\FontAwesome\Facades\FontAwesome; use Illuminate\Routing\Controller; +use Illuminate\Support\Facades\Cache; class FontAwesomeController extends Controller { public function __invoke() { - return response()->json(FontAwesome::icons()); + $json = Cache::rememberForever('font_awesome::icons', fn () => FontAwesome::icons()->toJson()); + + return response($json)->header('Content-Type', 'application/json'); } }