refactor: simplify preview generation

Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
2026-08-29 18:45:22 -04:00
parent b01b4bdbd2
commit f7d3ef0155
2 changed files with 5 additions and 24 deletions
+2 -20
View File
@@ -56,16 +56,6 @@ final class Provider implements PreviewProviderInterface
return 'image'; return 'image';
} }
public function supportedMimeTypes(): array
{
return array_values(self::INPUT_FORMATS);
}
public function outputMimeTypes(): array
{
return array_keys(self::OUTPUT_FORMATS);
}
public function supports(string $sourceMimeType, PreviewRequest $request): bool public function supports(string $sourceMimeType, PreviewRequest $request): bool
{ {
try { try {
@@ -74,10 +64,8 @@ final class Provider implements PreviewProviderInterface
return false; return false;
} }
return in_array($sourceMimeType, $this->supportedMimeTypes(), true) return in_array($sourceMimeType, array_values(self::INPUT_FORMATS), true)
&& isset(self::OUTPUT_FORMATS[$request->preferredMimeType]) && isset(self::OUTPUT_FORMATS[$request->preferredMimeType]);
&& ($request->page === null || $request->page === 1)
&& $request->timestamp === null;
} }
public function generate(PreviewSource $source, PreviewRequest $request): PreviewResult public function generate(PreviewSource $source, PreviewRequest $request): PreviewResult
@@ -132,12 +120,6 @@ final class Provider implements PreviewProviderInterface
} }
} }
public function generatorVersion(): string
{
$version = Imagick::getVersion();
return $version['versionString'] ?? 'ImageMagick';
}
public function priority(): int public function priority(): int
{ {
return 100; return 100;
+3 -4
View File
@@ -86,7 +86,7 @@ final class ProviderTest extends TestCase
#[DataProvider('outputFormats')] #[DataProvider('outputFormats')]
public function encodesEveryAdvertisedOutputFormat(string $mimeType, string $format): void public function encodesEveryAdvertisedOutputFormat(string $mimeType, string $format): void
{ {
$request = new PreviewRequest('popover', 640, 440, $mimeType, 80); $request = new PreviewRequest(640, 440, $mimeType, 80);
$result = (new Provider())->generate( $result = (new Provider())->generate(
$this->source($this->image('PNG', 20, 20, 'rgba(255, 0, 0, 0.25)'), 'image/png'), $this->source($this->image('PNG', 20, 20, 'rgba(255, 0, 0, 0.25)'), 'image/png'),
$request, $request,
@@ -102,7 +102,7 @@ final class ProviderTest extends TestCase
#[Test] #[Test]
public function preservesTransparencyInPngOutput(): void public function preservesTransparencyInPngOutput(): void
{ {
$request = new PreviewRequest('popover', 640, 440, 'image/png', 80); $request = new PreviewRequest(640, 440, 'image/png', 80);
$result = (new Provider())->generate( $result = (new Provider())->generate(
$this->source($this->image('PNG', 20, 20, 'rgba(255, 0, 0, 0.25)'), 'image/png'), $this->source($this->image('PNG', 20, 20, 'rgba(255, 0, 0, 0.25)'), 'image/png'),
$request, $request,
@@ -166,7 +166,6 @@ final class ProviderTest extends TestCase
{ {
$content = $this->image('PNG', 20, 20); $content = $this->image('PNG', 20, 20);
$request = new PreviewRequest( $request = new PreviewRequest(
'popover',
640, 640,
440, 440,
'image/webp', 'image/webp',
@@ -181,7 +180,7 @@ final class ProviderTest extends TestCase
private function request(): PreviewRequest private function request(): PreviewRequest
{ {
return new PreviewRequest('popover', 640, 440, 'image/webp', 80); return new PreviewRequest(640, 440, 'image/webp', 80);
} }
private function source(string $content, string $mimeType, ?int $size = null): PreviewSource private function source(string $content, string $mimeType, ?int $size = null): PreviewSource