Skip to content

Commit be1cee7

Browse files
feat(core): introduce Requester API (#540)
Co-authored-by: Sarah Dayan <[email protected]>
1 parent f5254e9 commit be1cee7

File tree

106 files changed

+2373
-1603
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+2373
-1603
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ build
44
coverage
55
dist
66
node_modules
7+
.parcel-cache

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ You can find more on the [documentation](https://autocomplete.algolia.com).
106106
| [`autocomplete-plugin-recent-searches`](packages/autocomplete-plugin-recent-searches) | A plugin to add recent searches to Algolia Autocomplete | [Documentation](https://autocomplete.algolia.com/docs/createLocalStorageRecentSearchesPlugin) |
107107
| [`autocomplete-plugin-query-suggestions`](packages/autocomplete-plugin-query-suggestions) | A plugin to add query suggestions to Algolia Autocomplete | [Documentation](https://autocomplete.algolia.com/docs/createQuerySuggestionsPlugin) |
108108
| [`autocomplete-plugin-algolia-insights`](packages/autocomplete-plugin-algolia-insights) | A plugin to add Algolia Insights to Algolia Autocomplete | [Documentation](https://autocomplete.algolia.com/docs/createAlgoliaInsightsPlugin) |
109-
| [`autocomplete-preset-algolia`](packages/autocomplete-preset-algolia) | Presets to use Algolia features with Autocomplete | [Documentation](https://autocomplete.algolia.com/docs/getAlgoliaHits) |
109+
| [`autocomplete-preset-algolia`](packages/autocomplete-preset-algolia) | Presets to use Algolia features with Autocomplete | [Documentation](https://autocomplete.algolia.com/docs/getAlgoliaResults) |
110110
| [`autocomplete-theme-classic`](packages/autocomplete-theme-classic) | Classic theme for Autocomplete | [Documentation](https://autocomplete.algolia.com/docs/autocomplete-theme-classic) |
111111

112112
## Showcase

bundlesize.config.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
"files": [
33
{
44
"path": "packages/autocomplete-core/dist/umd/index.production.js",
5-
"maxSize": "4.75 kB"
5+
"maxSize": "5 kB"
66
},
77
{
88
"path": "packages/autocomplete-js/dist/umd/index.production.js",
9-
"maxSize": "14.75 kB"
9+
"maxSize": "15.25 kB"
1010
},
1111
{
1212
"path": "packages/autocomplete-preset-algolia/dist/umd/index.production.js",
13-
"maxSize": "2 kB"
13+
"maxSize": "2.25 kB"
1414
},
1515
{
1616
"path": "packages/autocomplete-plugin-algolia-insights/dist/umd/index.production.js",

cypress/test-apps/js/app.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import {
33
autocomplete,
44
AutocompleteComponents,
5-
getAlgoliaHits,
5+
getAlgoliaResults,
66
} from '@algolia/autocomplete-js';
77
import {
88
AutocompleteInsightsApi,
@@ -78,7 +78,7 @@ autocomplete({
7878
{
7979
sourceId: 'products',
8080
getItems() {
81-
return getAlgoliaHits<Product>({
81+
return getAlgoliaResults<Product>({
8282
searchClient,
8383
queries: [
8484
{

cypress/test-apps/js/categoriesPlugin.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
/** @jsx h */
2-
import {
3-
AutocompletePlugin,
4-
getAlgoliaFacetHits,
5-
} from '@algolia/autocomplete-js';
2+
import { AutocompletePlugin, getAlgoliaFacets } from '@algolia/autocomplete-js';
63
import { SearchClient } from 'algoliasearch/lite';
74
import { h, Fragment } from 'preact';
85

@@ -24,13 +21,13 @@ export function createCategoriesPlugin({
2421
{
2522
sourceId: 'categoriesPlugin',
2623
getItems() {
27-
return getAlgoliaFacetHits({
24+
return getAlgoliaFacets({
2825
searchClient,
2926
queries: [
3027
{
3128
indexName: 'instant_search',
29+
facet: 'categories',
3230
params: {
33-
facetName: 'categories',
3431
facetQuery: query,
3532
maxFacetHits: query ? 3 : 10,
3633
},

cypress/test-apps/js/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
"@algolia/autocomplete-plugin-recent-searches": "1.0.0-alpha.44",
1717
"@algolia/autocomplete-preset-algolia": "1.0.0-alpha.44",
1818
"@algolia/autocomplete-theme-classic": "1.0.0-alpha.44",
19-
"@algolia/client-search": "4.8.6",
20-
"algoliasearch": "4.8.6",
19+
"@algolia/client-search": "4.9.0",
20+
"algoliasearch": "4.9.0",
2121
"preact": "10.5.13",
2222
"search-insights": "1.7.1"
2323
},

examples/multiple-datasets-with-headers/categoriesPlugin.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
/** @jsx h */
2-
import {
3-
AutocompletePlugin,
4-
getAlgoliaFacetHits,
5-
} from '@algolia/autocomplete-js';
2+
import { AutocompletePlugin, getAlgoliaFacets } from '@algolia/autocomplete-js';
63
import { SearchClient } from 'algoliasearch/lite';
74
import { h, Fragment } from 'preact';
85

@@ -24,7 +21,7 @@ export function createCategoriesPlugin({
2421
{
2522
sourceId: 'categoriesPlugin',
2623
getItems() {
27-
return getAlgoliaFacetHits({
24+
return getAlgoliaFacets({
2825
searchClient,
2926
queries: [
3027
{

examples/multiple-datasets-with-headers/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"@algolia/autocomplete-plugin-query-suggestions": "1.0.0-alpha.45",
1414
"@algolia/autocomplete-plugin-recent-searches": "1.0.0-alpha.45",
1515
"@algolia/autocomplete-theme-classic": "1.0.0-alpha.45",
16-
"algoliasearch": "4.8.6",
16+
"algoliasearch": "4.9.0",
1717
"preact": "10.5.13"
1818
},
1919
"devDependencies": {

examples/playground/app.tsx

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import {
33
autocomplete,
44
AutocompleteComponents,
5-
getAlgoliaHits,
5+
getAlgoliaResults,
66
} from '@algolia/autocomplete-js';
77
import {
88
AutocompleteInsightsApi,
@@ -18,7 +18,7 @@ import '@algolia/autocomplete-theme-classic';
1818

1919
import { createCategoriesPlugin } from './categoriesPlugin';
2020
import { shortcutsPlugin } from './shortcutsPlugin';
21-
import { ProductHit } from './types';
21+
import { ProductRecord, ProductHit } from './types';
2222

2323
const appId = 'latency';
2424
const apiKey = '6be0576ff61c053d5f9a3225e2a90f76';
@@ -72,7 +72,7 @@ autocomplete<ProductHit>({
7272
{
7373
sourceId: 'products',
7474
getItems() {
75-
return getAlgoliaHits<ProductHit>({
75+
return getAlgoliaResults<ProductRecord>({
7676
searchClient,
7777
queries: [
7878
{
@@ -85,16 +85,19 @@ autocomplete<ProductHit>({
8585
},
8686
},
8787
],
88-
}).then(([hits]) => {
89-
return hits.map((hit) => ({
90-
...hit,
91-
comments: hit.popularity % 100,
92-
sale: hit.free_shipping,
93-
// eslint-disable-next-line @typescript-eslint/camelcase
94-
sale_price: hit.free_shipping
95-
? (hit.price - hit.price / 10).toFixed(2)
96-
: hit.price.toString(),
97-
}));
88+
transformResponse({ hits }) {
89+
const [bestBuyHits] = hits;
90+
91+
return bestBuyHits.map((hit) => ({
92+
...hit,
93+
comments: hit.popularity % 100,
94+
sale: hit.free_shipping,
95+
// eslint-disable-next-line @typescript-eslint/camelcase
96+
sale_price: hit.free_shipping
97+
? (hit.price - hit.price / 10).toFixed(2)
98+
: hit.price.toString(),
99+
}));
100+
},
98101
});
99102
},
100103
templates: {

examples/playground/categoriesPlugin.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
/** @jsx h */
2-
import {
3-
AutocompletePlugin,
4-
getAlgoliaFacetHits,
5-
} from '@algolia/autocomplete-js';
2+
import { AutocompletePlugin, getAlgoliaFacets } from '@algolia/autocomplete-js';
63
import { SearchClient } from 'algoliasearch/lite';
74
import { h, Fragment } from 'preact';
85

@@ -24,13 +21,13 @@ export function createCategoriesPlugin({
2421
{
2522
sourceId: 'categoriesPlugin',
2623
getItems() {
27-
return getAlgoliaFacetHits({
24+
return getAlgoliaFacets({
2825
searchClient,
2926
queries: [
3027
{
3128
indexName: 'instant_search',
29+
facet: 'categories',
3230
params: {
33-
facetName: 'categories',
3431
facetQuery: query,
3532
maxFacetHits: query ? 3 : 5,
3633
},

0 commit comments

Comments
 (0)