Skip to content

Commit 503faa1

Browse files
committed
fix: dart (for real)
1 parent bda1868 commit 503faa1

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

config/generation.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ export const patterns = [
3030
// Dart
3131
'!clients/algoliasearch-client-dart/**',
3232
'clients/algoliasearch-client-dart/packages/*/pubspec.yaml',
33+
'clients/algoliasearch-client-dart/packages/*/build.yaml',
3334
'clients/algoliasearch-client-dart/packages/*/lib/*.dart',
3435
'clients/algoliasearch-client-dart/packages/*/lib/src/*.dart',
3536
'clients/algoliasearch-client-dart/packages/client_core/pubspec.yaml',
3637
'clients/algoliasearch-client-dart/packages/*/lib/src/api/**',
3738
'clients/algoliasearch-client-dart/packages/*/lib/src/model/**',
3839
'!clients/algoliasearch-client-dart/packages/client_core/**',
3940
'clients/algoliasearch-client-dart/packages/client_core/lib/src/version.dart',
40-
'!clients/algoliasearch-client-dart/packages/*/lib/src/extension.dart',
4141
'!clients/algoliasearch-client-dart/packages/algoliasearch/lib/algoliasearch.dart',
4242

4343
// GO

templates/dart/extension.mustache

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,46 @@
11
{{#isSearchClient}}
22
export 'extension/search.dart';
33
export 'extension/wait_task.dart';
4-
{{/isSearchClient}}
4+
{{/isSearchClient}}
5+
{{#isAlgoliasearchClient}}
6+
import 'package:algoliasearch/algoliasearch_lite.dart';
7+
8+
extension SearchClientExt on SearchClient {
9+
/// Perform a search operation targeting one index.
10+
Future<SearchResponse> searchIndex({
11+
required SearchForHits request,
12+
RequestOptions? requestOptions,
13+
}) async {
14+
final response = await search(
15+
searchMethodParams: SearchMethodParams(requests: [request]),
16+
requestOptions: requestOptions,
17+
);
18+
return SearchResponse.fromJson(response.results.first);
19+
}
20+
21+
/// Calls the `search` method but with certainty that we will only request
22+
/// Algolia records (hits).
23+
Future<Iterable<SearchResponse>> searchForHits({
24+
required List<SearchForHits> requests,
25+
SearchStrategy? strategy,
26+
RequestOptions? requestOptions,
27+
}) async {
28+
final request = SearchMethodParams(requests: requests, strategy: strategy);
29+
return search(searchMethodParams: request, requestOptions: requestOptions)
30+
.then((res) => res.results.map((e) => SearchResponse.fromJson(e)));
31+
}
32+
33+
/// Calls the `search` method but with certainty that we will only request
34+
/// Algolia facets.
35+
Future<Iterable<SearchForFacetValuesResponse>> searchForFacets({
36+
required List<SearchForFacets> requests,
37+
SearchStrategy? strategy,
38+
RequestOptions? requestOptions,
39+
}) async {
40+
final request = SearchMethodParams(requests: requests, strategy: strategy);
41+
return search(searchMethodParams: request, requestOptions: requestOptions)
42+
.then((res) =>
43+
res.results.map((e) => SearchForFacetValuesResponse.fromJson(e)));
44+
}
45+
}
46+
{{/isAlgoliasearchClient}}

0 commit comments

Comments
 (0)