Skip to content

Commit 7991b15

Browse files
authored
Merge sdk and baseUri into the SDK index's _Library object. (#8775)
1 parent d8d675f commit 7991b15

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

app/lib/search/sdk_mem_index.dart

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ const _defaultApiPageDirWeights = {
3232

3333
/// In-memory index for SDK library search queries.
3434
class 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

190190
class _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

Comments
 (0)