Skip to content

Commit afc557e

Browse files
feature #51849 [AssetMapper] Warn of missing or incompat dependencies (weaverryan)
This PR was squashed before being merged into the 6.4 branch. Discussion ---------- [AssetMapper] Warn of missing or incompat dependencies | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | no | New feature? | yes | Deprecations? | no | Tickets | None | License | MIT Hi! The aim of the `importmap.php` system is to be a simple way to manage your JS dependencies. But to make it robust enough for production use, it does need a few things - like the `importmap:audit` command in #51650. This PR adds a check, during `importmap:require` and `importmap:update`, that reports any missing dependencies or dependencies with invalid versions. This is necessary so that, if package `A` requires package `B`, their versions don't "drift" over time without you being aware (e.g. you update package `A` to v3 but keep package `B` at v1, even though v3 of `A` requires v2 of `B`). <img width="1266" alt="Screenshot 2023-10-04 at 2 44 04 PM" src="https://github.com/symfony/symfony/assets/121003/3901a070-d092-494a-a7cb-3bfe5d5a99f9"> Built on top of #51786. Cheers! Commits ------- 42dfb9aa1c [AssetMapper] Warn of missing or incompat dependencies
2 parents f140466 + 91484a9 commit afc557e

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

Resources/config/asset_mapper.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
use Symfony\Component\AssetMapper\ImportMap\ImportMapManager;
3535
use Symfony\Component\AssetMapper\ImportMap\ImportMapRenderer;
3636
use Symfony\Component\AssetMapper\ImportMap\ImportMapUpdateChecker;
37+
use Symfony\Component\AssetMapper\ImportMap\ImportMapVersionChecker;
3738
use Symfony\Component\AssetMapper\ImportMap\RemotePackageDownloader;
3839
use Symfony\Component\AssetMapper\ImportMap\RemotePackageStorage;
3940
use Symfony\Component\AssetMapper\ImportMap\Resolver\JsDelivrEsmResolver;
@@ -171,6 +172,12 @@
171172
service('asset_mapper.importmap.resolver'),
172173
])
173174

175+
->set('asset_mapper.importmap.version_checker', ImportMapVersionChecker::class)
176+
->args([
177+
service('asset_mapper.importmap.config_reader'),
178+
service('asset_mapper.importmap.remote_package_downloader'),
179+
])
180+
174181
->set('asset_mapper.importmap.resolver', JsDelivrEsmResolver::class)
175182
->args([service('http_client')])
176183

@@ -199,6 +206,7 @@
199206
->args([
200207
service('asset_mapper.importmap.manager'),
201208
param('kernel.project_dir'),
209+
service('asset_mapper.importmap.version_checker'),
202210
])
203211
->tag('console.command')
204212

@@ -207,7 +215,10 @@
207215
->tag('console.command')
208216

209217
->set('asset_mapper.importmap.command.update', ImportMapUpdateCommand::class)
210-
->args([service('asset_mapper.importmap.manager')])
218+
->args([
219+
service('asset_mapper.importmap.manager'),
220+
service('asset_mapper.importmap.version_checker'),
221+
])
211222
->tag('console.command')
212223

213224
->set('asset_mapper.importmap.command.install', ImportMapInstallCommand::class)

0 commit comments

Comments
 (0)