vue-instantsearch-ssr
Version:
👀 Lightning-fast Algolia search for Vue apps
3 lines (2 loc) • 1.07 kB
JavaScript
import{getPropertyByPath as i}from"instantsearch.js/es/lib/utils/index.js";import{unescape as h}from"./unescape.js";var t={highlightPreTag:"__ais-highlight__",highlightPostTag:"__/ais-highlight__"};function r(i){var h=i.preTag,t=i.postTag,r=i.highlightedValue;void 0===r&&(r="");var a=r.split(h),g=a.shift(),e=""===g?[]:[{value:g,isHighlighted:!1}];if(t===h){var s=!0;a.forEach(function(i){e.push({value:i,isHighlighted:s}),s=!s})}else a.forEach(function(i){var h=i.split(t);e.push({value:h[0],isHighlighted:!0}),""!==h[1]&&e.push({value:" "===h[1]?" ":h[1],isHighlighted:!1})});return e}function a(a){var g=a.preTag;void 0===g&&(g=t.highlightPreTag);var e=a.postTag;void 0===e&&(e=t.highlightPostTag);var s=a.highlightProperty,l=a.attribute,o=a.hit;if(!o)throw new Error("`hit`, the matching record, must be provided");var u=i(o[s],l)||{};return Array.isArray(u)?u.map(function(i){return r({preTag:g,postTag:e,highlightedValue:h(i.value)})}):r({preTag:g,postTag:e,highlightedValue:h(u.value)})}export{a as parseAlgoliaHit};
//# sourceMappingURL=parseAlgoliaHit.js.map