Skip to content

Commit fa4b959

Browse files
feat(algolia): type highlighting utils
1 parent baabc3a commit fa4b959

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

packages/autocomplete-preset-algolia/src/highlight.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,17 @@ function reverseHighlightedParts(parts: ParsedAttribute[]) {
8080
return parts.map((part) => ({ ...part, isHighlighted: !part.isHighlighted }));
8181
}
8282

83-
type SharedParseAttributeParams = {
84-
hit: any;
85-
attribute: string;
83+
type SharedParseAttributeParams<TItem> = {
84+
hit: TItem;
85+
attribute: keyof TItem;
8686
ignoreEscape?: string[];
8787
};
8888

89-
export function parseAlgoliaHitHighlight({
89+
export function parseAlgoliaHitHighlight<TItem extends object>({
9090
hit,
9191
attribute,
9292
ignoreEscape,
93-
}: SharedParseAttributeParams): ParsedAttribute[] {
93+
}: SharedParseAttributeParams<TItem>): ParsedAttribute[] {
9494
const highlightedValue = getAttributeValueByPath(
9595
hit,
9696
`_highlightResult.${attribute}.value`
@@ -102,17 +102,17 @@ export function parseAlgoliaHitHighlight({
102102
});
103103
}
104104

105-
export function parseAlgoliaHitReverseHighlight(
106-
props: SharedParseAttributeParams
105+
export function parseAlgoliaHitReverseHighlight<TItem extends object>(
106+
props: SharedParseAttributeParams<TItem>
107107
): ParsedAttribute[] {
108-
return reverseHighlightedParts(parseAlgoliaHitHighlight(props));
108+
return reverseHighlightedParts(parseAlgoliaHitHighlight<TItem>(props));
109109
}
110110

111-
export function parseAlgoliaHitSnippet({
111+
export function parseAlgoliaHitSnippet<TItem extends object>({
112112
hit,
113113
attribute,
114114
ignoreEscape,
115-
}: SharedParseAttributeParams): ParsedAttribute[] {
115+
}: SharedParseAttributeParams<TItem>): ParsedAttribute[] {
116116
const highlightedValue = getAttributeValueByPath(
117117
hit,
118118
`_snippetResult.${attribute}.value`
@@ -124,8 +124,8 @@ export function parseAlgoliaHitSnippet({
124124
});
125125
}
126126

127-
export function parseAlgoliaHitReverseSnippet(
128-
props: SharedParseAttributeParams
127+
export function parseAlgoliaHitReverseSnippet<TItem extends object>(
128+
props: SharedParseAttributeParams<TItem>
129129
): ParsedAttribute[] {
130-
return reverseHighlightedParts(parseAlgoliaHitSnippet(props));
130+
return reverseHighlightedParts(parseAlgoliaHitSnippet<TItem>(props));
131131
}

0 commit comments

Comments
 (0)