JFIF  x x C         C     "        } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz        w !1AQ aq"2B #3Rbr{ gilour
<?php declare(strict_types=1); namespace Kreait\Firebase\Valinor\Converter; use Traversable; /** * @internal * * @see https://valinor.cuyz.io/latest/how-to/convert-input/#converting-keys-format-from-snake_case-to-camelcase */ final class SnakeCaseToCamelCaseConverter { /** * @template T of object * @param iterable<mixed> $values * @param callable(iterable<mixed>): T $next * @return T */ public function __invoke(iterable $values, callable $next): object { if ($values instanceof Traversable) { $values = iterator_to_array($values); } $camelCaseConverted = array_combine( array_map( fn(int|string $key): string => lcfirst(str_replace('_', '', ucwords((string) $key, '_'))), array_keys($values), ), $values, ); return $next($camelCaseConverted); } }