UNPKG

vue-instantsearch

Version:

👀 Lightning-fast Algolia search for Vue apps

3 lines (2 loc) • 2.42 kB
import{createSSRApp as t}from"vue";import"./vue-compat/index-vue3.js";import{warn as e}from"./warn.js";import r from"instantsearch.js/es/index.js";function n(e,r){void 0===r&&(r={});var n=r.mixins;void 0===n&&(n=[]);var s,i={serverPrefetch:void 0,fetch:void 0,_base:void 0,name:"ais-ssr-root-component"},o=Object.assign({},e.$options,i);return o.mixins=n.concat(o.mixins||[]),s=t(o),e.$router&&s.use(e.$router),e.$store&&s.use(e.$store),s.$slots=e.$slots,s.$root=e.$root,s}function s(t,n){var s,i=r(t);return i.findResultsState=function(t){var e,r,o=t.component,a=t.renderToString;if(!a)throw new Error("findResultsState requires `renderToString: (component) => Promise<string>` in the first argument.");return Promise.resolve().then(function(){e=n(o,{mixins:[{beforeCreate:function(){var t=Object.getOwnPropertyDescriptor(o,"$nuxt"),e=!!t&&(t.writable||t.set);o.$nuxt&&e&&(this.$nuxt=o.$nuxt)},created:function(){(r=this.instantsearch).start(),r.started=!1}}]})}).then(function(){return a(e)}).then(function(){return t=r.mainHelper,new Promise(function(e,r){t.searchOnlyWithDerivedHelpers(),t.derivedHelpers[0].on("result",function(){e()}),t.derivedHelpers.forEach(function(t){return t.on("error",function(t){r(t)})})});var t}).then(function(){return s={},function t(e,r){return r(e),e.getWidgets().forEach(function(e){"ais.index"===e.$$type&&(r(e),t(e,r))})}(r.mainIndex,function(t){s[t.getIndexId()]={state:Object.entries(t.getHelper().state).reduce(function(t,e){var r=e[0],n=e[1];return t[r]=n,t},{}),results:t.getResults()._rawResults}}),i.hydrate(s),i.getState()})},i.getState=function(){if(!s)throw new Error("You need to wait for findResultsState to finish");return s},i.__forceRender=function(t,e){var r=e.getResults();if(null!==r){var n=r._state,s=e.getHelper();s.state=n,t.render({helper:s,results:r,scopedResults:e.getScopedResults(),parent:e,state:n,templatesConfig:{},createURL:e.createURL,instantSearchInstance:i,searchMetadata:{isSearchStalled:!1}})}},i.hydrate=function(t){t?(i._initialResults=t,i.start(),i.started=!1):e("The result of `findResultsState()` needs to be passed to `hydrate()`.")},i}function i(t){void 0===t&&(t={});var e=t.$cloneComponent;void 0===e&&(e=n);var r=s(t,e);return{provide:function(){return{$_ais_ssrInstantSearchInstance:this.instantsearch}},data:function(){return{instantsearch:r}}}}export{i as createServerRootMixin}; //# sourceMappingURL=createServerRootMixin.js.map