@@ -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