Skip to content

Commit 9914264

Browse files
committed
fix: link command with replace
1 parent 3e16514 commit 9914264

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/Command/LinkCommand.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
*/
3131
final class LinkCommand extends BaseCommand
3232
{
33-
public const REQUIRE_KEYS = ['require', 'require-dev'];
33+
public const REQUIRE_KEYS = ['require', 'require-dev', 'replace'];
3434
use ReadJsonFileTrait;
3535

3636
/**
@@ -86,7 +86,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
8686

8787
$dependencies = [
8888
'require' => $this->mapRequireDependencies($composer, $config->composerFiles, $output),
89-
'require-dev' => $this->mapRequireDevDependencies($composer, $config->composerFiles, $output)
89+
'require-dev' => $this->mapRequireDevDependencies($composer, $config->composerFiles, $output),
90+
'replace' => $this->mapReplaceDependencies($composer, $config->composerFiles, $output)
9091
];
9192

9293
foreach ($dependencies['require'] as $dependency) {
@@ -96,8 +97,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int
9697
foreach ($dependencies['require-dev'] as $dependency) {
9798
static::$fileContents[$composerFile]['require-dev'][$dependency] = '@dev';
9899
}
100+
101+
foreach ($dependencies['replace'] as $dependency) {
102+
static::$fileContents[$composerFile]['require-dev'][$dependency] = '@dev';
103+
}
104+
99105

100-
foreach (array_merge($dependencies['require'], $dependencies['require-dev']) as $dependency) {
106+
foreach (array_merge($dependencies['require'], $dependencies['require-dev'], $dependencies['replace']) as $dependency) {
101107
foreach ($config->composerFiles as $f) {
102108
// mapDependencies reads the composer.json contents, if it's not there we don't need to map this dependency
103109
if (!isset(static::$fileContents[$f])) {
@@ -166,6 +172,16 @@ private function mapRequireDevDependencies(array $composer, array $composerFiles
166172
return array_unique(iterator_to_array($this->mapDependencies($composer, $composerFiles, 'require-dev', $output)));
167173
}
168174

175+
/**
176+
* @param ComposerJsonType $composer
177+
* @param array<string, string> $composerFiles
178+
*
179+
* @return array<string>
180+
*/
181+
private function mapReplaceDependencies(array $composer, array $composerFiles, OutputInterface $output): array {
182+
return array_unique(iterator_to_array($this->mapDependencies($composer, $composerFiles, 'replace', $output)));
183+
}
184+
169185
/**
170186
* @param value-of<self::REQUIRE_KEYS> $key
171187
* @param ComposerJsonType $composer

0 commit comments

Comments
 (0)