diff --git a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AutoCastTransformerTest.php b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AutoCastTransformerTest.php index e51dece276..e1d4c99fe4 100644 --- a/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AutoCastTransformerTest.php +++ b/src/core/etl/tests/Flow/ETL/Tests/Unit/Transformer/AutoCastTransformerTest.php @@ -20,7 +20,7 @@ public function test_transforming_row() : void 'integer' => '1', 'float' => '1.0', 'boolean' => 'true', - 'json' => '{"foo":"bar"}', + 'array' => ['foo' => 'bar', 1 => 6.66], 'datetime' => '2021-01-01 00:00:00', 'null' => 'null', 'nil' => 'nil', @@ -33,7 +33,7 @@ public function test_transforming_row() : void 'integer' => 1, 'float' => 1.0, 'boolean' => true, - 'json' => ['foo' => 'bar'], + 'array' => ['foo' => 'bar', 1 => 6.66], 'datetime' => new \DateTimeImmutable('2021-01-01 00:00:00'), 'null' => null, 'nil' => null, diff --git a/src/lib/types/src/Flow/Types/Type/AutoCaster.php b/src/lib/types/src/Flow/Types/Type/AutoCaster.php index 785d739e35..d1a012bcb7 100644 --- a/src/lib/types/src/Flow/Types/Type/AutoCaster.php +++ b/src/lib/types/src/Flow/Types/Type/AutoCaster.php @@ -9,9 +9,7 @@ type_date, type_datetime, type_float, - type_integer, - type_json, - type_uuid}; + type_integer}; use Flow\Types\Type\Native\String\StringTypeChecker; final readonly class AutoCaster @@ -36,24 +34,15 @@ public function cast(mixed $value) : mixed */ private function castArray(array $value) : array { - $keyTypes = []; $valueTypes = []; - foreach ($value as $key => $item) { - $keyType = get_type($key); + foreach ($value as $item) { $valueType = get_type($item); - $keyTypes[$keyType->toString()] = $keyType; $valueTypes[$valueType->toString()] = $valueType; } if (isset($valueTypes['integer'], $valueTypes['float']) && \count($valueTypes) === 2) { - $castedArray = []; - - foreach ($value as $key => $item) { - $castedArray[$key] = type_float()->cast($item); - } - - return $castedArray; + return \array_map(fn ($item) => type_float()->cast($item), $value); } return $value; @@ -79,14 +68,6 @@ private function castToString(string $value) : mixed return type_boolean()->cast($value); } - if ($typeChecker->isJson()) { - return type_json()->cast($value); - } - - if ($typeChecker->isUuid()) { - return type_uuid()->cast($value); - } - if ($typeChecker->isDate()) { return type_date()->cast($value); }