@@ -32,8 +32,6 @@ const _defaultApiPageDirWeights = {
32
32
33
33
/// In-memory index for SDK library search queries.
34
34
class SdkMemIndex {
35
- final String _sdk;
36
- final Uri _baseUri;
37
35
final _libraries = < String , _Library > {};
38
36
final Map <String , double > _apiPageDirWeights;
39
37
@@ -43,10 +41,8 @@ class SdkMemIndex {
43
41
required DartdocIndex index,
44
42
Set <String >? allowedLibraries,
45
43
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);
50
46
}
51
47
52
48
static SdkMemIndex dart ({required DartdocIndex index}) {
@@ -72,11 +68,13 @@ class SdkMemIndex {
72
68
Uri .parse ('https://api.flutter.dev/flutter/index.json' );
73
69
74
70
void _addDartdocIndex (
71
+ String sdk,
72
+ Uri baseUri,
75
73
DartdocIndex index,
76
74
Set <String >? allowedLibraries,
77
75
) {
78
76
final textsPerLibrary = < String , Map <String , String >> {};
79
- final baseUrls = < String , String > {};
77
+ final baseUris = < String , Uri > {};
80
78
final descriptions = < String , String > {};
81
79
82
80
for (final f in index.entries) {
@@ -89,7 +87,7 @@ class SdkMemIndex {
89
87
continue ;
90
88
}
91
89
if (f.isLibrary) {
92
- baseUrls [library] = _baseUri .resolve (f.href! ). toString ( );
90
+ baseUris [library] = baseUri .resolve (f.href! );
93
91
94
92
final desc = f.desc? .replaceAll (RegExp (r'\s+' ), ' ' ).trim ();
95
93
if (desc != null && desc.isNotEmpty) {
@@ -105,8 +103,10 @@ class SdkMemIndex {
105
103
}
106
104
for (final e in textsPerLibrary.entries) {
107
105
_libraries[e.key] = _Library (
106
+ sdk: sdk,
107
+ sdkBaseUri: baseUri,
108
108
name: e.key,
109
- baseUrl : baseUrls [e.key],
109
+ libraryUrl : (baseUris [e.key] ?? baseUri). toString () ,
110
110
description: descriptions[e.key],
111
111
tokenIndex: TokenIndex .fromMap (e.value),
112
112
);
@@ -156,16 +156,16 @@ class SdkMemIndex {
156
156
.take (limit)
157
157
.where ((h) => h.score >= minScore)
158
158
.map ((hit) => SdkLibraryHit (
159
- sdk: _sdk ,
159
+ sdk: hit.library.sdk ,
160
160
library: hit.library.name,
161
161
description: hit.library.description,
162
- url: hit.library.baseUrl ?? _baseUri. toString () ,
162
+ url: hit.library.libraryUrl ,
163
163
score: hit.score,
164
164
apiPages: hit.top.entries
165
165
.map (
166
166
(e) => ApiPageRef (
167
167
path: e.key,
168
- url: _baseUri .resolve (e.key).toString (),
168
+ url: hit.library.sdkBaseUri .resolve (e.key).toString (),
169
169
),
170
170
)
171
171
.toList (),
@@ -188,14 +188,18 @@ class _Hit {
188
188
}
189
189
190
190
class _Library {
191
+ final String sdk;
192
+ final Uri sdkBaseUri;
191
193
final String name;
192
- final String ? baseUrl ;
194
+ final String libraryUrl ;
193
195
final String ? description;
194
196
final TokenIndex <String > tokenIndex;
195
197
196
198
_Library ({
199
+ required this .sdk,
200
+ required this .sdkBaseUri,
197
201
required this .name,
198
- required this .baseUrl ,
202
+ required this .libraryUrl ,
199
203
required this .description,
200
204
required this .tokenIndex,
201
205
});
0 commit comments