Merge pull request 'refactor: simplify preview generation' (#2) from feat/add-imagemagick-preview-provider into main

Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
2026-09-06 01:16:35 +00:00
2 changed files with 5 additions and 24 deletions
+2 -20
View File
@@ -56,16 +56,6 @@ final class Provider implements PreviewProviderInterface
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
{
try {
@@ -74,10 +64,8 @@ final class Provider implements PreviewProviderInterface
return false;
}
return in_array($sourceMimeType, $this->supportedMimeTypes(), true)
&& isset(self::OUTPUT_FORMATS[$request->preferredMimeType])
&& ($request->page === null || $request->page === 1)
&& $request->timestamp === null;
return in_array($sourceMimeType, array_values(self::INPUT_FORMATS), true)
&& isset(self::OUTPUT_FORMATS[$request->preferredMimeType]);
}
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
{
return 100;
+3 -4
View File
@@ -86,7 +86,7 @@ final class ProviderTest extends TestCase
#[DataProvider('outputFormats')]
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(
$this->source($this->image('PNG', 20, 20, 'rgba(255, 0, 0, 0.25)'), 'image/png'),
$request,
@@ -102,7 +102,7 @@ final class ProviderTest extends TestCase
#[Test]
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(
$this->source($this->image('PNG', 20, 20, 'rgba(255, 0, 0, 0.25)'), 'image/png'),
$request,
@@ -166,7 +166,6 @@ final class ProviderTest extends TestCase
{
$content = $this->image('PNG', 20, 20);
$request = new PreviewRequest(
'popover',
640,
440,
'image/webp',
@@ -181,7 +180,7 @@ final class ProviderTest extends TestCase
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