react-instantsearch-core
7.25.07.26.0
dist/cjs/server/getServerState.js~
dist/cjs/server/getServerState.jsModified+81−91
Index: package/dist/cjs/server/getServerState.js
===================================================================
--- package/dist/cjs/server/getServerState.js
+++ package/dist/cjs/server/getServerState.js
@@ -1,98 +1,88 @@
-"use strict";
+'use strict';
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.getServerState = getServerState;
-var _server = require("instantsearch.js/cjs/lib/server");
-var _utils = require("instantsearch.js/cjs/lib/utils");
-var _react = _interopRequireDefault(require("react"));
-var _InstantSearchServerContext = require("../components/InstantSearchServerContext");
-var _InstantSearchSSRProvider = require("../components/InstantSearchSSRProvider");
-function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
+var server = require('instantsearch.js/cjs/lib/server');
+var utils = require('instantsearch.js/cjs/lib/utils');
+var React = require('react');
+var InstantSearchServerContext = require('../components/InstantSearchServerContext.js');
+var InstantSearchSSRProvider = require('../components/InstantSearchSSRProvider.js');
+
/**
* Returns the InstantSearch server state from a component.
- */
-function getServerState(children, _ref) {
- var renderToString = _ref.renderToString;
- var searchRef = {
- current: undefined
- };
- (0, _utils.resetWidgetId)();
- var createNotifyServer = function createNotifyServer() {
- var hasBeenNotified = false;
- var notifyServer = function notifyServer(_ref2) {
- var search = _ref2.search;
- if (hasBeenNotified) {
- throw new Error('getServerState should be called with a single InstantSearchSSRProvider and a single InstantSearch component.');
- }
- hasBeenNotified = true;
- searchRef.current = search;
+ */ function getServerState(children, param) {
+ var renderToString = param.renderToString;
+ var searchRef = {
+ current: undefined
};
- return notifyServer;
- };
- return execute({
- children: children,
- renderToString: renderToString,
- searchRef: searchRef,
- notifyServer: createNotifyServer()
- }).then(function (serverState) {
- var shouldRefetch = false;
-
- // <DynamicWidgets> requires another query to retrieve the dynamic widgets
- // to render.
- (0, _utils.walkIndex)(searchRef.current.mainIndex, function (index) {
- shouldRefetch = shouldRefetch || index.getWidgets().some(function (widget) {
- return widget.$$type === 'ais.dynamicWidgets';
- });
- });
- if (shouldRefetch) {
- (0, _utils.resetWidgetId)();
- return execute({
- children: /*#__PURE__*/_react.default.createElement(_InstantSearchSSRProvider.InstantSearchSSRProvider, serverState, children),
+ utils.resetWidgetId();
+ var createNotifyServer = function createNotifyServer() {
+ var hasBeenNotified = false;
+ var notifyServer = function notifyServer(param) {
+ var search = param.search;
+ if (hasBeenNotified) {
+ throw new Error('getServerState should be called with a single InstantSearchSSRProvider and a single InstantSearch component.');
+ }
+ hasBeenNotified = true;
+ searchRef.current = search;
+ };
+ return notifyServer;
+ };
+ return execute({
+ children: children,
renderToString: renderToString,
searchRef: searchRef,
- notifyServer: createNotifyServer(),
- skipRecommend: true
- });
- }
- return serverState;
- });
+ notifyServer: createNotifyServer()
+ }).then(function(serverState) {
+ var shouldRefetch = false;
+ // <DynamicWidgets> requires another query to retrieve the dynamic widgets
+ // to render.
+ utils.walkIndex(searchRef.current.mainIndex, function(index) {
+ shouldRefetch = shouldRefetch || index.getWidgets().some(function(widget) {
+ return widget.$$type === 'ais.dynamicWidgets';
+ });
+ });
+ if (shouldRefetch) {
+ utils.resetWidgetId();
+ return execute({
+ children: /*#__PURE__*/ React.createElement(InstantSearchSSRProvider.InstantSearchSSRProvider, serverState, children),
+ renderToString: renderToString,
+ searchRef: searchRef,
+ notifyServer: createNotifyServer(),
+ skipRecommend: true
+ });
+ }
+ return serverState;
+ });
}
-function execute(_ref3) {
- var children = _ref3.children,
- renderToString = _ref3.renderToString,
- notifyServer = _ref3.notifyServer,
- searchRef = _ref3.searchRef,
- skipRecommend = _ref3.skipRecommend;
- return Promise.resolve().then(function () {
- renderToString(/*#__PURE__*/_react.default.createElement(_InstantSearchServerContext.InstantSearchServerContext.Provider, {
- value: {
- notifyServer: notifyServer
- }
- }, children));
- }).then(function () {
- return (
- // We wait for the component to mount so that `notifyServer()` is called.
- new Promise(function (resolve) {
- return setTimeout(resolve, 0);
- })
- );
- }).then(function () {
- // If `notifyServer()` is not called by then, it means that <InstantSearch>
- // wasn't within the `children`.
- // We decide to go with a strict behavior in that case; throwing. If users have
- // some routes that don't mount the <InstantSearch> component, they would need
- // to try/catch the `getServerState()` call.
- // If this behavior turns out to be too strict for many users, we can decide
- // to warn instead of throwing.
- if (!searchRef.current) {
- throw new Error("Unable to retrieve InstantSearch's server state in `getServerState()`. Did you mount the <InstantSearch> component?");
- }
- return (0, _server.waitForResults)(searchRef.current, skipRecommend);
- }).then(function (requestParamsList) {
- return {
- initialResults: (0, _server.getInitialResults)(searchRef.current.mainIndex, requestParamsList)
- };
- });
-}
\ No newline at end of file
+function execute(param) {
+ var children = param.children, renderToString = param.renderToString, notifyServer = param.notifyServer, searchRef = param.searchRef, skipRecommend = param.skipRecommend;
+ return Promise.resolve().then(function() {
+ renderToString(/*#__PURE__*/ React.createElement(InstantSearchServerContext.InstantSearchServerContext.Provider, {
+ value: {
+ notifyServer: notifyServer
+ }
+ }, children));
+ }).then(function() {
+ return(// We wait for the component to mount so that `notifyServer()` is called.
+ new Promise(function(resolve) {
+ return setTimeout(resolve, 0);
+ }));
+ }).then(function() {
+ // If `notifyServer()` is not called by then, it means that <InstantSearch>
+ // wasn't within the `children`.
+ // We decide to go with a strict behavior in that case; throwing. If users have
+ // some routes that don't mount the <InstantSearch> component, they would need
+ // to try/catch the `getServerState()` call.
+ // If this behavior turns out to be too strict for many users, we can decide
+ // to warn instead of throwing.
+ if (!searchRef.current) {
+ throw new Error("Unable to retrieve InstantSearch's server state in `getServerState()`. Did you mount the <InstantSearch> component?");
+ }
+ return server.waitForResults(searchRef.current, skipRecommend);
+ }).then(function(requestParamsList) {
+ return {
+ initialResults: server.getInitialResults(searchRef.current.mainIndex, requestParamsList)
+ };
+ });
+}
+
+exports.getServerState = getServerState;