Skip to content

Commit 756a1e9

Browse files
Fix mutating operators
1 parent 28f4449 commit 756a1e9

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/Differ/Differ.php

+15-4
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,23 @@ function ($acc, $key) use ($tree1, $tree2) {
3434
$diff = [...$acc];
3535

3636
if (!array_key_exists($key, $tree2)) {
37-
$diff[$key]['status'] = 'remove';
37+
$diff = addDataToArray($diff, $key, 'status', 'remove');
3838
$innerContent = sortingFirstFile($tree1[$key], $tree1[$key]);
3939
$diff[$key]['value'] = $innerContent;
4040
return $diff;
4141
}
4242

4343
if ($tree1[$key] === $tree2[$key]) {
44-
$diff[$key]['status'] = 'unchanged';
44+
$diff = addDataToArray($diff, $key, 'status', 'unchanged');
4545
$diff[$key]['value'] = sortingFirstFile($tree1[$key], $tree1[$key]);
4646
return $diff;
4747
}
4848

4949
if (is_array($tree1[$key]) && is_array($tree2[$key])) {
50-
$diff[$key]['status'] = 'changed';
50+
$diff = addDataToArray($diff, $key, 'status', 'changed');
5151
$diff[$key]['value'] = sortingFirstFile($tree1[$key], $tree2[$key]);
5252
} else {
53-
$diff[$key]['status'] = 'remove';
53+
$diff = addDataToArray($diff, $key, 'status', 'remove');
5454
$diff[$key]['beforeValue'] = sortingFirstFile($tree1[$key], $tree1[$key]);
5555
$diff[$key]['afterValue'] = sortingFirstFile($tree2[$key], $tree2[$key]);
5656
}
@@ -128,3 +128,14 @@ function ($left, $right) {
128128
return array_merge($diff, $diffContent);
129129
}, []);
130130
}
131+
132+
function addDataToArray(array $tree, string $key, string $treeKey, string|array $value): array
133+
{
134+
$diff = $tree;
135+
136+
if (!is_array($value)) {
137+
$diff[$key][$treeKey] = $value;
138+
}
139+
140+
return $diff;
141+
}

0 commit comments

Comments
 (0)