Skip to content

Commit 24e26a1

Browse files
weaverryannicolas-grekas
authored andcommitted
[AssetMapper] Change default importmap "provider" to JsDelivr+esm
1 parent 4e33dde commit 24e26a1

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

DependencyInjection/Configuration.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -902,8 +902,8 @@ private function addAssetMapperSection(ArrayNodeDefinition $rootNode, callable $
902902
->defaultValue('%kernel.project_dir%/assets/vendor')
903903
->end()
904904
->scalarNode('provider')
905-
->info('The provider (CDN) to use', class_exists(ImportMapManager::class) ? sprintf(' (e.g.: "%s").', implode('", "', ImportMapManager::PROVIDERS)) : '.')
906-
->defaultValue('jspm')
905+
->info('The provider (CDN) to use'.class_exists(ImportMapManager::class) ? sprintf(' (e.g.: "%s").', implode('", "', ImportMapManager::PROVIDERS)) : '.')
906+
->defaultValue('jsdelivr.esm')
907907
->end()
908908
->end()
909909
->end()

DependencyInjection/FrameworkExtension.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1314,7 +1314,17 @@ private function registerAssetMapperConfiguration(array $config, ContainerBuilde
13141314
->getDefinition('asset_mapper.importmap.manager')
13151315
->replaceArgument(2, $config['importmap_path'])
13161316
->replaceArgument(3, $config['vendor_dir'])
1317-
->replaceArgument(4, $config['provider'])
1317+
;
1318+
1319+
$importMapProviderId = 'asset_mapper.importmap.provider.jspm_provider';
1320+
if (ImportMapManager::PROVIDER_JSDELIVR_ESM === $config['provider']) {
1321+
$importMapProviderId = 'asset_mapper.importmap.provider.js_delivr_esm_provider';
1322+
}
1323+
$container->setAlias('asset_mapper.importmap.provider', new Alias($importMapProviderId));
1324+
1325+
$container
1326+
->getDefinition('asset_mapper.importmap.provider.jspm_provider')
1327+
->replaceArgument(0, $config['provider'])
13181328
;
13191329

13201330
$container

Resources/config/asset_mapper.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
use Symfony\Component\AssetMapper\Factory\MappedAssetFactory;
3030
use Symfony\Component\AssetMapper\ImportMap\ImportMapManager;
3131
use Symfony\Component\AssetMapper\ImportMap\ImportMapRenderer;
32+
use Symfony\Component\AssetMapper\ImportMap\Providers\JsDelivrEsmImportMapProvider;
33+
use Symfony\Component\AssetMapper\ImportMap\Providers\JspmImportMapProvider;
3234
use Symfony\Component\AssetMapper\MapperAwareAssetPackage;
3335
use Symfony\Component\AssetMapper\Path\PublicAssetsPathResolver;
3436
use Symfony\Component\HttpKernel\Event\RequestEvent;
@@ -136,10 +138,18 @@
136138
service('asset_mapper.public_assets_path_resolver'),
137139
abstract_arg('importmap.php path'),
138140
abstract_arg('vendor directory'),
139-
abstract_arg('provider'),
141+
// dynamic alias to the chosen provider
142+
service('asset_mapper.importmap.provider'),
140143
])
141144
->alias(ImportMapManager::class, 'asset_mapper.importmap.manager')
142145

146+
->set('asset_mapper.importmap.provider.jspm_provider', JspmImportMapProvider::class)
147+
->args([
148+
abstract_arg('provider'),
149+
])
150+
151+
->set('asset_mapper.importmap.provider.js_delivr_esm_provider', JsDelivrEsmImportMapProvider::class)
152+
143153
->set('asset_mapper.importmap.renderer', ImportMapRenderer::class)
144154
->args([
145155
service('asset_mapper.importmap.manager'),

Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public function testAssetMapperCanBeEnabled()
112112
'importmap_path' => '%kernel.project_dir%/importmap.php',
113113
'importmap_polyfill' => null,
114114
'vendor_dir' => '%kernel.project_dir%/assets/vendor',
115-
'provider' => 'jspm',
115+
'provider' => 'jsdelivr.esm',
116116
'importmap_script_attributes' => [],
117117
];
118118

@@ -624,7 +624,7 @@ protected static function getBundleDefaultConfig()
624624
'importmap_path' => '%kernel.project_dir%/importmap.php',
625625
'importmap_polyfill' => null,
626626
'vendor_dir' => '%kernel.project_dir%/assets/vendor',
627-
'provider' => 'jspm',
627+
'provider' => 'jsdelivr.esm',
628628
'importmap_script_attributes' => [],
629629
],
630630
'cache' => [

0 commit comments

Comments
 (0)