@@ -32,8 +32,6 @@ const _defaultApiPageDirWeights = {
3232
3333/// In-memory index for SDK library search queries.
3434class SdkMemIndex {
35- final String _sdk;
36- final Uri _baseUri;
3735 final _libraries = < String , _Library > {};
3836 final Map <String , double > _apiPageDirWeights;
3937
@@ -43,10 +41,8 @@ class SdkMemIndex {
4341 required DartdocIndex index,
4442 Set <String >? allowedLibraries,
4543 Map <String , double >? apiPageDirWeights,
46- }) : _sdk = sdk,
47- _baseUri = baseUri,
48- _apiPageDirWeights = apiPageDirWeights ?? _defaultApiPageDirWeights {
49- _addDartdocIndex (index, allowedLibraries);
44+ }) : _apiPageDirWeights = apiPageDirWeights ?? _defaultApiPageDirWeights {
45+ _addDartdocIndex (sdk, baseUri, index, allowedLibraries);
5046 }
5147
5248 static SdkMemIndex dart ({required DartdocIndex index}) {
@@ -72,11 +68,13 @@ class SdkMemIndex {
7268 Uri .parse ('https://api.flutter.dev/flutter/index.json' );
7369
7470 void _addDartdocIndex (
71+ String sdk,
72+ Uri baseUri,
7573 DartdocIndex index,
7674 Set <String >? allowedLibraries,
7775 ) {
7876 final textsPerLibrary = < String , Map <String , String >> {};
79- final baseUrls = < String , String > {};
77+ final baseUris = < String , Uri > {};
8078 final descriptions = < String , String > {};
8179
8280 for (final f in index.entries) {
@@ -89,7 +87,7 @@ class SdkMemIndex {
8987 continue ;
9088 }
9189 if (f.isLibrary) {
92- baseUrls [library] = _baseUri .resolve (f.href! ). toString ( );
90+ baseUris [library] = baseUri .resolve (f.href! );
9391
9492 final desc = f.desc? .replaceAll (RegExp (r'\s+' ), ' ' ).trim ();
9593 if (desc != null && desc.isNotEmpty) {
@@ -105,8 +103,10 @@ class SdkMemIndex {
105103 }
106104 for (final e in textsPerLibrary.entries) {
107105 _libraries[e.key] = _Library (
106+ sdk: sdk,
107+ sdkBaseUri: baseUri,
108108 name: e.key,
109- baseUrl : baseUrls [e.key],
109+ libraryUrl : (baseUris [e.key] ?? baseUri). toString () ,
110110 description: descriptions[e.key],
111111 tokenIndex: TokenIndex .fromMap (e.value),
112112 );
@@ -156,16 +156,16 @@ class SdkMemIndex {
156156 .take (limit)
157157 .where ((h) => h.score >= minScore)
158158 .map ((hit) => SdkLibraryHit (
159- sdk: _sdk ,
159+ sdk: hit.library.sdk ,
160160 library: hit.library.name,
161161 description: hit.library.description,
162- url: hit.library.baseUrl ?? _baseUri. toString () ,
162+ url: hit.library.libraryUrl ,
163163 score: hit.score,
164164 apiPages: hit.top.entries
165165 .map (
166166 (e) => ApiPageRef (
167167 path: e.key,
168- url: _baseUri .resolve (e.key).toString (),
168+ url: hit.library.sdkBaseUri .resolve (e.key).toString (),
169169 ),
170170 )
171171 .toList (),
@@ -188,14 +188,18 @@ class _Hit {
188188}
189189
190190class _Library {
191+ final String sdk;
192+ final Uri sdkBaseUri;
191193 final String name;
192- final String ? baseUrl ;
194+ final String libraryUrl ;
193195 final String ? description;
194196 final TokenIndex <String > tokenIndex;
195197
196198 _Library ({
199+ required this .sdk,
200+ required this .sdkBaseUri,
197201 required this .name,
198- required this .baseUrl ,
202+ required this .libraryUrl ,
199203 required this .description,
200204 required this .tokenIndex,
201205 });
0 commit comments