nikitovskij/php-gendiff

View on GitHub
src/Formatters.php

Summary

Maintainability
A
2 hrs
Test Coverage
B
83%
<?php

namespace GenDiff\Formatters;

use function GenDiff\Formatters\Pretty\render as renderPretty;
use function GenDiff\Formatters\Plain\render as renderPlain;
use function GenDiff\Formatters\Json\render as renderJson;

function formatData(string $renderFormat, array $data): string
{
    $formatters = [
        'pretty' => fn ($data) => renderPretty($data),
        'plain'  => fn ($data) => renderPlain($data),
        'json'   => fn ($data) => renderJson($data),
    ];

    if (!array_key_exists($renderFormat, $formatters)) {
        throw new \Exception("Unknown report format `{$renderFormat}`.");
    }

    return $formatters[$renderFormat]($data);
}