shallRemoveDefaultFrontendJavaScript($request)) { return; } $filePath = 'EXT:frontend/Resources/Public/JavaScript/default_frontend.js'; $collector = GeneralUtility::makeInstance(AssetCollector::class); // `config.removeDefaultJS = external` - persist JavaScript to `typo3temp/assets/` if ($this->shallExportDefaultFrontendJavaScript($request)) { $source = file_get_contents(GeneralUtility::getFileAbsFileName($filePath)); $filePath = GeneralUtility::writeJavaScriptContentToTemporaryFile((string)$source); } $collector->addJavaScript('frontend-default', $filePath, ['async' => 'async']); } protected function shallRemoveDefaultFrontendJavaScript(ServerRequestInterface $request): bool { $frontendTypoScriptConfigArray = $request->getAttribute('frontend.typoscript')?->getConfigArray(); return ($frontendTypoScriptConfigArray['removeDefaultJS'] ?? 'external') === '1'; } protected function shallExportDefaultFrontendJavaScript(ServerRequestInterface $request): bool { $frontendTypoScriptConfigArray = $request->getAttribute('frontend.typoscript')?->getConfigArray(); return ($frontendTypoScriptConfigArray['removeDefaultJS'] ?? 'external') === 'external'; } }