JFIF  x x C         C     "        } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz        w !1AQ aq"2B #3Rbr{ gilour

File "SnakeCaseToCamelCaseConverter.php"

Full Path: /home/u735268861/domains/palsarh.in/public_html/vendor/kreait/firebase-php/src/Firebase/Valinor/Converter/SnakeCaseToCamelCaseConverter.php
File size: 922 bytes
MIME-type: text/x-php
Charset: utf-8

<?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);
    }
}