@@ -8,6 +8,8 @@ import 'package:meta/meta.dart';
88// ignore: implementation_imports
99import 'package:pana/src/dartdoc/dartdoc_index.dart' ;
1010import 'package:path/path.dart' as p;
11+ import 'package:pub_dev/search/dart_sdk_mem_index.dart' ;
12+ import 'package:pub_dev/search/flutter_sdk_mem_index.dart' ;
1113
1214import '../shared/versions.dart' ;
1315import 'search_service.dart' ;
@@ -23,39 +25,55 @@ class SdkMemIndex {
2325 final _tokensPerLibrary = < String , TokenIndex <String >> {};
2426 final _baseUriPerLibrary = < String , String > {};
2527 final _descriptionPerLibrary = < String , String > {};
26- final _libraryWeights = < String , double > {} ;
27- final _apiPageDirWeights = < String , double > {} ;
28+ final Map <String , double > _libraryWeights ;
29+ final Map <String , double > _apiPageDirWeights ;
2830
2931 SdkMemIndex ({
3032 required String sdk,
3133 required String ? version,
3234 required Uri baseUri,
35+ required DartdocIndex index,
36+ Set <String >? allowedLibraries,
37+ Map <String , double >? libraryWeights,
38+ Map <String , double >? apiPageDirWeights,
3339 }) : _sdk = sdk,
3440 _version = version,
35- _baseUri = baseUri;
41+ _baseUri = baseUri,
42+ _libraryWeights = libraryWeights ?? const {},
43+ _apiPageDirWeights = apiPageDirWeights ?? const {} {
44+ _addDartdocIndex (index, allowedLibraries);
45+ }
3646
37- static Future < SdkMemIndex > dart () async {
47+ static SdkMemIndex dart ({ required DartdocIndex index}) {
3848 return SdkMemIndex (
3949 sdk: 'dart' ,
4050 version: runtimeSdkVersion,
4151 baseUri: Uri .parse ('https://api.dart.dev/stable/latest/' ),
52+ index: index,
53+ libraryWeights: dartSdkLibraryWeights,
4254 );
4355 }
4456
45- factory SdkMemIndex .flutter () {
57+ factory SdkMemIndex .flutter ({ required DartdocIndex index} ) {
4658 return SdkMemIndex (
4759 sdk: 'flutter' ,
4860 version: null ,
4961 baseUri: Uri .parse ('https://api.flutter.dev/flutter/' ),
62+ index: index,
63+ allowedLibraries: flutterSdkAllowedLibraries,
64+ apiPageDirWeights: flutterApiPageDirWeights,
5065 );
5166 }
5267
53- late final indexJsonUri = _baseUri.resolve ('index.json' );
68+ static final dartSdkIndexJsonUri =
69+ Uri .parse ('https://api.dart.dev/stable/latest/index.json' );
70+ static final flutterSdkIndexJsonUri =
71+ Uri .parse ('https://api.flutter.dev/flutter/index.json' );
5472
55- Future < void > addDartdocIndex (
56- DartdocIndex index, {
73+ void _addDartdocIndex (
74+ DartdocIndex index,
5775 Set <String >? allowedLibraries,
58- }) async {
76+ ) {
5977 final textsPerLibrary = < String , Map <String , String >> {};
6078 for (final f in index.entries) {
6179 final library = f.qualifiedName? .split ('.' ).first;
@@ -86,15 +104,6 @@ class SdkMemIndex {
86104 }
87105 }
88106
89- /// Updates the non-default weight for libraries.
90- void updateWeights ({
91- required Map <String , double > libraryWeights,
92- required Map <String , double > apiPageDirWeights,
93- }) {
94- _libraryWeights.addAll (libraryWeights);
95- _apiPageDirWeights.addAll (apiPageDirWeights);
96- }
97-
98107 List <SdkLibraryHit > search (
99108 String query, {
100109 int ? limit,
0 commit comments