2 declare(strict_types = 1);
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
36 $this->pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
66 $name = $request->getQueryParams()[
'name'] ??
null;
67 if (empty($name) || !is_string($name)) {
71 return new JsonResponse($configuration, !empty($configuration) ? 200 : 404);
80 $relevantConfiguration = [];
81 $this->pageRenderer->loadRequireJs();
84 $shim = $configuration[
'shim'] ?? [];
85 foreach ($shim as $baseModuleName => $baseModuleConfiguration) {
86 if (strpos($name .
'/', $baseModuleName .
'/') === 0) {
87 $relevantConfiguration[
'shim'][$baseModuleName] = $baseModuleConfiguration;
91 $paths = $configuration[
'paths'] ?? [];
92 foreach ($paths as $baseModuleName => $baseModulePath) {
93 if (strpos($name .
'/', $baseModuleName .
'/') === 0) {
94 $relevantConfiguration[
'paths'][$baseModuleName] = $baseModulePath;
98 $packages = $configuration[
'packages'] ?? [];
99 foreach ($packages as $package) {
100 if (!empty($package[
'name'])
101 && strpos($name .
'/', $package[
'name'] .
'/') === 0
103 $relevantConfiguration[
'packages'][] = $package;
107 return $relevantConfiguration;