Skip to content

Commit e5bd7d0

Browse files
committed
[AssetMapper] Fixing bug of bad parsing of imports when an import then export are adjacent
1 parent b6418aa commit e5bd7d0

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/Symfony/Component/AssetMapper/ImportMap/Resolver/JsDelivrEsmResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ final class JsDelivrEsmResolver implements PackageResolverInterface
2626
public const URL_PATTERN_DIST = self::URL_PATTERN_DIST_CSS.'/+esm';
2727
public const URL_PATTERN_ENTRYPOINT = 'https://data.jsdelivr.com/v1/packages/npm/%s@%s/entrypoints';
2828

29-
public const IMPORT_REGEX = '{from"/npm/([^@]*@?\S+?)@([^/]+)/\+esm"}';
29+
public const IMPORT_REGEX = '{from"/npm/((?:@[^/]+/)?[^@]+)@([^/]+)/\+esm"}';
3030

3131
private HttpClientInterface $httpClient;
3232

src/Symfony/Component/AssetMapper/Tests/ImportMap/Resolver/JsDelivrEsmResolverTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,14 @@ public static function provideImportRegex(): iterable
474474
['@vue/shared', '3.3.4'],
475475
],
476476
];
477+
478+
yield 'adjacent import and export statements' => [
479+
'import e from"/npm/datatables.net@2.1.1/+esm";export{default}from"/npm/datatables.net@2.1.1/+esm";',
480+
[
481+
['datatables.net', '2.1.1'],
482+
['datatables.net', '2.1.1'], // for the export syntax
483+
],
484+
];
477485
}
478486

479487
private static function createRemoteEntry(string $importName, string $version, ImportMapType $type = ImportMapType::JS, string $packageSpecifier = null): ImportMapEntry

0 commit comments

Comments
 (0)