diff --git a/src/Plugin/PatternBase.php b/src/Plugin/PatternBase.php index c0ad451309c6234ad7b2b57351c388ca1fa16ef5..f23567e1c2f57bde1c1567c9fbfb70ca0b15a191 100644 --- a/src/Plugin/PatternBase.php +++ b/src/Plugin/PatternBase.php @@ -104,17 +104,19 @@ abstract class PatternBase extends PluginBase implements PatternInterface, Conta * Item parent set in previous recursive iteration, if any. */ protected function processLibraries(&$libraries, $base_path, $parent = '') { - $parents = ['js', 'base', 'layout', 'component', 'state', 'theme']; - $_libraries = $libraries; - foreach ($_libraries as $name => $values) { - $is_asset = in_array($parent, $parents, TRUE); - $is_external = isset($values['type']) && $values['type'] == 'external'; - if ($is_asset && !$is_external) { - $libraries[$base_path . DIRECTORY_SEPARATOR . $name] = $values; - unset($libraries[$name]); - } - elseif (!$is_asset && ($parent != 'dependencies')) { - $this->processLibraries($libraries[$name], $base_path, $name); + if (!is_string($libraries)) { + $parents = ['js', 'base', 'layout', 'component', 'state', 'theme']; + $_libraries = $libraries; + foreach ($_libraries as $name => $values) { + $is_asset = in_array($parent, $parents, TRUE); + $is_external = isset($values['type']) && $values['type'] == 'external'; + if ($is_asset && !$is_external) { + $libraries[$base_path . DIRECTORY_SEPARATOR . $name] = $values; + unset($libraries[$name]); + } + elseif (!$is_asset) { + $this->processLibraries($libraries[$name], $base_path, $name); + } } } } diff --git a/tests/src/fixtures/libraries.yml b/tests/src/fixtures/libraries.yml index 7c43230895729c92f19504599b4b779df1b4da1d..60870b952d969348ea96e4b84f8e2458db502cbb 100644 --- a/tests/src/fixtures/libraries.yml +++ b/tests/src/fixtures/libraries.yml @@ -73,7 +73,6 @@ http://example.com/external.min.js: { type: external, minified: true } /pattern/base/path/library_two.js: {} - - actual: id: pattern_name @@ -82,7 +81,6 @@ - drupal/library_two expected: [] - - actual: id: pattern_name