JFIF x x C C " } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w !1AQ aq"2B #3Rbr{
File "ArrayNormalizer.php"
Full Path: /home/palsarh/web/palsarh.in/public_html/vendor/cuyz/valinor/src/Normalizer/ArrayNormalizer.php
File size: 1006 B
MIME-type: text/x-php
Charset: utf-8
<?php
declare(strict_types=1);
namespace CuyZ\Valinor\Normalizer;
use CuyZ\Valinor\Normalizer\Transformer\EmptyObject;
use CuyZ\Valinor\Normalizer\Transformer\Transformer;
/**
* @api
*
* @implements Normalizer<array<mixed>|scalar|null>
*/
final class ArrayNormalizer implements Normalizer
{
/**
* @internal
*/
public function __construct(
private Transformer $transformer,
) {}
/** @pure */
public function normalize(mixed $value): mixed
{
/** @var array<mixed>|scalar|null */
return $this->format(
$this->transformer->transform($value),
);
}
private function format(mixed $value): mixed
{
if (is_iterable($value)) {
if (! is_array($value)) {
$value = iterator_to_array($value);
}
$value = array_map($this->format(...), $value);
} elseif ($value instanceof EmptyObject) {
return [];
}
return $value;
}
}