From 72f1d485dba2be128e51aecf0d8198f0e94e3c88 Mon Sep 17 00:00:00 2001 From: Maelan LE BORGNE Date: Wed, 11 Oct 2023 09:21:38 +0200 Subject: [PATCH 1/3] Added packageName and filePath to ImportMapEntry when requiring --- .../Component/AssetMapper/ImportMap/ImportMapManager.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php b/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php index 6144eab323f3..eebba71d6e7c 100644 --- a/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php +++ b/src/Symfony/Component/AssetMapper/ImportMap/ImportMapManager.php @@ -295,13 +295,15 @@ private function requirePackages(array $packagesToRequire, ImportMapEntries $imp $resolvedPackages = $this->resolver->resolvePackages($packagesToRequire); foreach ($resolvedPackages as $resolvedPackage) { $importName = $resolvedPackage->requireOptions->importName ?: $resolvedPackage->requireOptions->packageName; - + [$packageName, $filePath] = ImportMapConfigReader::splitPackageNameAndFilePath($importName); $newEntry = new ImportMapEntry( $importName, path: $resolvedPackage->requireOptions->path, version: $resolvedPackage->version, type: $resolvedPackage->type, isEntrypoint: $resolvedPackage->requireOptions->entrypoint, + packageName: $packageName, + filePath: $filePath, ); $importMapEntries->add($newEntry); $addedEntries[] = $newEntry; From 8adabc1d021b2fda4645a67e6025b96f4661f7bc Mon Sep 17 00:00:00 2001 From: Maelan LE BORGNE Date: Thu, 12 Oct 2023 14:04:43 +0200 Subject: [PATCH 2/3] Throw exception before download query if entry is not valid --- .../AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php b/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php index a14a8f0ac5e7..1e07d27ebcb6 100644 --- a/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php +++ b/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php @@ -161,6 +161,9 @@ public function downloadPackages(array $importMapEntries, callable $progressCall foreach ($importMapEntries as $package => $entry) { $pattern = ImportMapType::CSS === $entry->type ? $this->distUrlCssPattern : $this->distUrlPattern; + if (null === $entry->packageName || null === $entry->version || null === $entry->filePath) { + throw new RuntimeException(sprintf('The package %s cannot be downloaded. "packageName", "version" or "filePath" must be defined.', $entry->importName)); + } $url = sprintf($pattern, $entry->packageName, $entry->version, $entry->filePath); $responses[$package] = $this->httpClient->request('GET', $url); From 47e334d858732d36a742e833fcaa7bf1f0505f7a Mon Sep 17 00:00:00 2001 From: Maelan LE BORGNE Date: Thu, 12 Oct 2023 14:29:44 +0200 Subject: [PATCH 3/3] Throw exception before download query if entry is not valid --- .../AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php | 2 +- .../Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php b/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php index 1e07d27ebcb6..bdc6acc43ab9 100644 --- a/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php +++ b/src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php @@ -162,7 +162,7 @@ public function downloadPackages(array $importMapEntries, callable $progressCall foreach ($importMapEntries as $package => $entry) { $pattern = ImportMapType::CSS === $entry->type ? $this->distUrlCssPattern : $this->distUrlPattern; if (null === $entry->packageName || null === $entry->version || null === $entry->filePath) { - throw new RuntimeException(sprintf('The package %s cannot be downloaded. "packageName", "version" or "filePath" must be defined.', $entry->importName)); + throw new RuntimeException(sprintf('The package "%s" cannot be downloaded. "packageName", "version" and "filePath" must be defined.', $entry->importName)); } $url = sprintf($pattern, $entry->packageName, $entry->version, $entry->filePath); diff --git a/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php b/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php index b27ff210f044..8b11d991c1b1 100644 --- a/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php +++ b/src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php @@ -293,7 +293,7 @@ public function testDownloadPackages(array $importMapEntries, array $expectedReq public static function provideDownloadPackagesTests() { yield 'single package' => [ - ['lodash' => new ImportMapEntry('lodash', version: '1.2.3', packageName: 'lodash')], + ['lodash' => new ImportMapEntry('lodash', version: '1.2.3', packageName: 'lodash', filePath: '')], [ [ 'url' => '/lodash@1.2.3/+esm', @@ -333,7 +333,7 @@ public static function provideDownloadPackagesTests() yield 'multiple files' => [ [ - 'lodash' => new ImportMapEntry('lodash', version: '1.2.3', packageName: 'lodash'), + 'lodash' => new ImportMapEntry('lodash', version: '1.2.3', packageName: 'lodash', filePath: ''), 'chart.js/auto' => new ImportMapEntry('chart.js/auto', version: '4.5.6', packageName: 'chart.js', filePath: '/auto'), 'bootstrap/dist/bootstrap.css' => new ImportMapEntry('bootstrap/dist/bootstrap.css', version: '5.0.6', type: ImportMapType::CSS, packageName: 'bootstrap', filePath: '/dist/bootstrap.css'), ], pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy