1919 * @test web.frontend.unittest.bundler.ResolverTest
2020 */
2121class Resolver {
22- const LATEST = ['' , '* ' , 'latest ' ];
22+ const LATEST = ['' , '* ' , 'latest ' ];
2323
2424 private $ fetch , $ registry ;
2525
@@ -38,14 +38,11 @@ public function __construct(Fetch $fetch, string $registry= 'https://data.jsdeli
3838 * @return [:var]
3939 */
4040 private function select ($ versions , $ lo , $ hi ) {
41- $ compare = function ($ id ) use ($ lo , $ hi ) {
42- return
43- 3 === sscanf ($ id , "%*d.%*d.%*d%[^ \r] " , $ extra ) &&
44- version_compare ($ id , $ lo , 'ge ' ) &&
45- version_compare ($ id , $ hi , 'lt ' )
46- ;
47- };
48- return array_filter ($ versions , $ compare );
41+ return array_filter ($ versions , fn ($ id ) => (
42+ 3 === sscanf ($ id , "%*d.%*d.%*d%[^ \r] " , $ extra ) &&
43+ version_compare ($ id , $ lo , 'ge ' ) &&
44+ version_compare ($ id , $ hi , 'lt ' )
45+ ));
4946 }
5047
5148 /**
@@ -59,7 +56,7 @@ public function version(string $library, string $constraint): string {
5956 if (in_array ($ constraint , self ::LATEST )) {
6057 $ candidates = array_filter (
6158 $ info ['versions ' ],
62- function ($ id ) { return 3 === sscanf ($ id , "%*d.%*d.%*d%[^ \r] " , $ extra ); }
59+ fn ($ id ) => 3 === sscanf ($ id , "%*d.%*d.%*d%[^ \r] " , $ extra )
6360 );
6461 } else if ('^ ' === $ constraint [0 ]) { // Don't allow breaking changes
6562 $ c = sscanf ($ constraint , '^%d.%d.%d ' );
@@ -89,7 +86,7 @@ function($id) { return 3 === sscanf($id, "%*d.%*d.%*d%[^\r]", $extra); }
8986
9087 // Find newest applicable version
9188 if ($ candidates ) {
92- usort ($ candidates , function ($ a , $ b ) { return version_compare ($ b , $ a ); } );
89+ usort ($ candidates , fn ($ a , $ b ) => version_compare ($ b , $ a ));
9390 return $ candidates [0 ];
9491 }
9592
0 commit comments