reshow-flux
Version:
The smallest react flux and Fast hook alternative
42 lines (38 loc) • 1.32 kB
JavaScript
;
var _interopRequireDefault = require("reshow-runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _objectSpread2 = _interopRequireDefault(require("reshow-runtime/helpers/objectSpread2"));
var _callFunc = _interopRequireDefault(require("call-func"));
// @ts-check
/**
* @template StateType
* @template ActionType
* @typedef {import("reshow-flux-base").StoreObject<StateType, ActionType>} StoreObject
*/
/**
* @template StateType
* @template ActionType
* @param {object} props
* @returns{StoreObject<StateType, ActionType>}
*/
var storeLocator = function storeLocator(props) {
return props === null || props === void 0 ? void 0 : props.store;
};
/**
* @returns {object}
*/
var getStore = function getStore(_ref) {
var props = _ref.props,
options = _ref.options;
var allProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, options), props);
var store = (0, _callFunc["default"])((options === null || options === void 0 ? void 0 : options.storeLocator) || storeLocator, [allProps]);
if (!store) {
console.trace();
throw "Need defined store. such as store={your-store}";
}
allProps.store = store;
return allProps;
};
var _default = exports["default"] = getStore;
module.exports = exports.default;