react-esc-resolver
Advanced tools
Comparing version 5.0.0-beta.1 to 5.0.0-beta.2
@@ -6,2 +6,10 @@ # Change Log | ||
<a name="5.0.0-beta.2"></a> | ||
# [5.0.0-beta.2](https://github.com/TriPSs/react-esc/compare/v5.0.0-beta.1...v5.0.0-beta.2) (2019-01-18) | ||
**Note:** Version bump only for package react-esc-resolver | ||
<a name="5.0.0-beta.1"></a> | ||
@@ -8,0 +16,0 @@ # [5.0.0-beta.1](https://github.com/TriPSs/react-esc/compare/v5.0.0-alpha.24...v5.0.0-beta.1) (2019-01-18) |
@@ -7,16 +7,16 @@ 'use strict'; | ||
var _Object$getPrototypeOf = _interopDefault(require('babel-runtime/core-js/object/get-prototype-of')); | ||
var _classCallCheck = _interopDefault(require('babel-runtime/helpers/classCallCheck')); | ||
var _createClass = _interopDefault(require('babel-runtime/helpers/createClass')); | ||
var _possibleConstructorReturn = _interopDefault(require('babel-runtime/helpers/possibleConstructorReturn')); | ||
var _inherits = _interopDefault(require('babel-runtime/helpers/inherits')); | ||
var _Object$keys = _interopDefault(require('babel-runtime/core-js/object/keys')); | ||
var _defineProperty = _interopDefault(require('babel-runtime/helpers/defineProperty')); | ||
var _typeof = _interopDefault(require('babel-runtime/helpers/typeof')); | ||
var _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck')); | ||
var _createClass = _interopDefault(require('@babel/runtime/helpers/createClass')); | ||
var _possibleConstructorReturn = _interopDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); | ||
var _getPrototypeOf = _interopDefault(require('@babel/runtime/helpers/getPrototypeOf')); | ||
var _inherits = _interopDefault(require('@babel/runtime/helpers/inherits')); | ||
var _defineProperty = _interopDefault(require('@babel/runtime/helpers/defineProperty')); | ||
var _typeof = _interopDefault(require('@babel/runtime/helpers/typeof')); | ||
var React = _interopDefault(require('react')); | ||
var _Promise = _interopDefault(require('babel-runtime/core-js/promise')); | ||
var _extends = _interopDefault(require('babel-runtime/helpers/extends')); | ||
var _objectSpread = _interopDefault(require('@babel/runtime/helpers/objectSpread')); | ||
var _assertThisInitialized = _interopDefault(require('@babel/runtime/helpers/assertThisInitialized')); | ||
var PropTypes = _interopDefault(require('prop-types')); | ||
var ReactDOM = _interopDefault(require('react-dom')); | ||
var server = require('react-dom/server'); | ||
var _extends = _interopDefault(require('@babel/runtime/helpers/extends')); | ||
@@ -40,15 +40,18 @@ var canUseDom = (function () { | ||
var Resolver = function (_React$Component) { | ||
var Resolver = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inherits(Resolver, _React$Component); | ||
function Resolver(props, context) { | ||
var _this; | ||
_classCallCheck(this, Resolver); | ||
// Internal tracking variables | ||
var _this = _possibleConstructorReturn(this, (Resolver.__proto__ || _Object$getPrototypeOf(Resolver)).call(this, props, context)); | ||
_this = _possibleConstructorReturn(this, _getPrototypeOf(Resolver).call(this, props, context)); // Internal tracking variables | ||
_this.unMounted = true; | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "unMounted", true); | ||
_this[HAS_RESOLVED] = false; | ||
_this[IS_CLIENT] = false; | ||
_this.state = _this.computeState(_this.props, { | ||
@@ -61,2 +64,3 @@ pending: {}, | ||
_this.resolve(_this.state); | ||
_this[HAS_RESOLVED] = false; | ||
@@ -66,2 +70,3 @@ } else { | ||
} | ||
return _this; | ||
@@ -71,9 +76,8 @@ } | ||
_createClass(Resolver, [{ | ||
key: 'cached', | ||
key: "cached", | ||
value: function cached(resolve) { | ||
var _props = this.props, | ||
props = _props.props, | ||
cache = _props.cache; | ||
var _this$props = this.props, | ||
props = _this$props.props, | ||
cache = _this$props.cache; | ||
if (cache || !canUseDom()) { | ||
@@ -90,3 +94,3 @@ if (hasOwnProperty(props, resolve)) { | ||
}, { | ||
key: 'componentWillMount', | ||
key: "componentWillMount", | ||
value: function componentWillMount() { | ||
@@ -96,3 +100,3 @@ this.unMounted = false; | ||
}, { | ||
key: 'componentDidMount', | ||
key: "componentDidMount", | ||
value: function componentDidMount() { | ||
@@ -102,3 +106,3 @@ this[IS_CLIENT] = true; | ||
}, { | ||
key: 'componentWillUnmount', | ||
key: "componentWillUnmount", | ||
value: function componentWillUnmount() { | ||
@@ -108,11 +112,9 @@ this.unMounted = true; | ||
}, { | ||
key: 'componentWillReceiveProps', | ||
key: "componentWillReceiveProps", | ||
value: function componentWillReceiveProps(nextProps) { | ||
var _computeState = this.computeState(nextProps, this.state), | ||
pending = _computeState.pending, | ||
resolved = _computeState.resolved; | ||
var _this$computeState = this.computeState(nextProps, this.state), | ||
pending = _this$computeState.pending, | ||
resolved = _this$computeState.resolved; // Next state will resolve async props again, but update existing sync props | ||
// Next state will resolve async props again, but update existing sync props | ||
var nextState = { | ||
@@ -122,7 +124,6 @@ pending: pending, | ||
}; | ||
this.setAtomicState(nextState); | ||
} | ||
}, { | ||
key: 'computeState', | ||
key: "computeState", | ||
value: function computeState(thisProps, state) { | ||
@@ -132,6 +133,4 @@ var _this2 = this; | ||
var resolve = thisProps.resolve; | ||
var nextState = state; | ||
_Object$keys(resolve).forEach(function (name) { | ||
Object.keys(resolve).forEach(function (name) { | ||
var cached = _this2.cached(name); | ||
@@ -145,28 +144,27 @@ | ||
}); | ||
return nextState; | ||
} | ||
}, { | ||
key: 'getChildContext', | ||
key: "getChildContext", | ||
value: function getChildContext() { | ||
return { resolver: this }; | ||
return { | ||
resolver: this | ||
}; | ||
} | ||
}, { | ||
key: 'isValidCache', | ||
key: "isValidCache", | ||
value: function isValidCache(cache) { | ||
return cache !== null && typeof cache !== 'undefined' && ((typeof cache === 'undefined' ? 'undefined' : _typeof(cache)) !== 'object' || _Object$keys(cache).length > 0) && (!Array.isArray(cache) || cache.length > 0); | ||
return cache !== null && typeof cache !== 'undefined' && (_typeof(cache) !== 'object' || Object.keys(cache).length > 0) && (!Array.isArray(cache) || cache.length > 0); | ||
} | ||
}, { | ||
key: 'isPending', | ||
key: "isPending", | ||
value: function isPending() { | ||
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state; | ||
return _Object$keys(state.pending).length > 0; | ||
return Object.keys(state.pending).length > 0; | ||
} | ||
}, { | ||
key: 'isParentPending', | ||
key: "isParentPending", | ||
value: function isParentPending() { | ||
var resolver = this.context.resolver; | ||
if (resolver) { | ||
@@ -179,3 +177,3 @@ return resolver.isPending() || resolver.isParentPending(); | ||
}, { | ||
key: 'onResolve', | ||
key: "onResolve", | ||
value: function onResolve(state) { | ||
@@ -191,3 +189,3 @@ if (this.props.onResolve) { | ||
}, { | ||
key: 'render', | ||
key: "render", | ||
value: function render() { | ||
@@ -197,14 +195,14 @@ // Avoid rendering until ready | ||
return false; | ||
} | ||
} // If render is called again (e.g. hot-reloading), re-resolve | ||
// If render is called again (e.g. hot-reloading), re-resolve | ||
if (this.isPending(this.state)) { | ||
this.resolve(this.state); | ||
} | ||
} // Both those props provided by parent & dynamically resolved | ||
// Both those props provided by parent & dynamically resolved | ||
return this.props.children(_extends({}, this.props.props)); | ||
return this.props.children(_objectSpread({}, this.props.props)); | ||
} | ||
}, { | ||
key: 'resolve', | ||
key: "resolve", | ||
value: function resolve(state) { | ||
@@ -214,10 +212,9 @@ var _this3 = this; | ||
var props = this.props.props; | ||
var pending = _Object$keys(state.pending).map(function (name) { | ||
var pending = Object.keys(state.pending).map(function (name) { | ||
var func = state.pending[name]; | ||
return { name: name, func: func }; | ||
return { | ||
name: name, | ||
func: func | ||
}; | ||
}); | ||
var promises = pending.map(function (_ref) { | ||
@@ -227,15 +224,11 @@ var func = _ref.func; | ||
}); | ||
var resolving = _Promise.all(promises).then(function (values) { | ||
var resolving = Promise.all(promises).then(function (values) { | ||
return values.reduce(function (resolved, value, i) { | ||
resolved[pending[i].name] = true; | ||
return resolved; | ||
}, {}); | ||
}); | ||
}); // Resolve listeners get the current resolved | ||
// Resolve listeners get the current resolved | ||
resolving = this.onResolve(resolving); | ||
resolving = this.onResolve(resolving); // Update current component (on client) | ||
// Update current component (on client) | ||
resolving.then(function (resolved) { | ||
@@ -250,3 +243,3 @@ _this3[HAS_RESOLVED] = true; | ||
pending: {}, | ||
resolved: _extends({}, state.resolved, resolved) | ||
resolved: _objectSpread({}, state.resolved, resolved) | ||
}; | ||
@@ -258,3 +251,3 @@ | ||
}, { | ||
key: 'shouldComponentUpdate', | ||
key: "shouldComponentUpdate", | ||
value: function shouldComponentUpdate(nextProps, nextState) { | ||
@@ -264,14 +257,14 @@ // Prevent updating when parent is changing values | ||
return false; | ||
} | ||
} // Prevent rendering until pending values are resolved | ||
// Prevent rendering until pending values are resolved | ||
if (this.isPending(nextState)) { | ||
return false; | ||
} | ||
} // Update if we have resolved successfully | ||
// Update if we have resolved successfully | ||
return this[HAS_RESOLVED]; | ||
} | ||
}, { | ||
key: 'setAtomicState', | ||
key: "setAtomicState", | ||
value: function setAtomicState(nextState) { | ||
@@ -289,46 +282,40 @@ if (this.unMounted) { | ||
Resolver.childContextTypes = { | ||
_defineProperty(Resolver, "childContextTypes", { | ||
resolver: PropTypes.object | ||
}; | ||
Resolver.contextTypes = { | ||
}); | ||
_defineProperty(Resolver, "contextTypes", { | ||
resolver: PropTypes.object | ||
}; | ||
Resolver.defaultProps = { | ||
}); | ||
_defineProperty(Resolver, "defaultProps", { | ||
props: {}, | ||
resolve: {} | ||
}; | ||
Resolver.displayName = 'Resolver'; | ||
Resolver.propTypes = { | ||
}); | ||
_defineProperty(Resolver, "displayName", 'Resolver'); | ||
_defineProperty(Resolver, "propTypes", { | ||
children: PropTypes.func.isRequired, | ||
props: PropTypes.object, | ||
resolve: PropTypes.object | ||
}; | ||
}); | ||
Resolver.renderClient = function (render, node) { | ||
ReactDOM.hydrate(React.createElement( | ||
Resolver, | ||
null, | ||
render | ||
), node); | ||
}; | ||
_defineProperty(Resolver, "renderClient", function (render, node) { | ||
ReactDOM.hydrate(React.createElement(Resolver, null, render), node); | ||
}); | ||
Resolver.renderServer = function (_render) { | ||
_defineProperty(Resolver, "renderServer", function (_render) { | ||
var initialData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
var queue = []; | ||
server.renderToStaticMarkup(React.createElement( | ||
Resolver, | ||
{ onResolve: function onResolve(promise) { | ||
queue.push(promise); | ||
return _Promise.resolve(true); | ||
} }, | ||
_render | ||
)); | ||
return _Promise.all(queue).then(function (results) { | ||
server.renderToStaticMarkup(React.createElement(Resolver, { | ||
onResolve: function onResolve(promise) { | ||
queue.push(promise); | ||
return Promise.resolve(true); | ||
} | ||
}, _render)); | ||
return Promise.all(queue).then(function (results) { | ||
var formatResults = {}; | ||
results.forEach(function (item) { | ||
return _Object$keys(item).forEach(function (key) { | ||
return Object.keys(item).forEach(function (key) { | ||
formatResults[key] = item[key]; | ||
@@ -338,9 +325,11 @@ }); | ||
var data = _extends({}, initialData, formatResults); | ||
var data = _objectSpread({}, initialData, formatResults); | ||
if (_Object$keys(initialData).length < _Object$keys(data).length) { | ||
if (Object.keys(initialData).length < Object.keys(data).length) { | ||
return Resolver.renderServer(_render, data); | ||
} | ||
var Resolved = function (_React$Component2) { | ||
var Resolved = | ||
/*#__PURE__*/ | ||
function (_React$Component2) { | ||
_inherits(Resolved, _React$Component2); | ||
@@ -351,13 +340,9 @@ | ||
return _possibleConstructorReturn(this, (Resolved.__proto__ || _Object$getPrototypeOf(Resolved)).apply(this, arguments)); | ||
return _possibleConstructorReturn(this, _getPrototypeOf(Resolved).apply(this, arguments)); | ||
} | ||
_createClass(Resolved, [{ | ||
key: 'render', | ||
key: "render", | ||
value: function render() { | ||
return React.createElement( | ||
Resolver, | ||
null, | ||
_render | ||
); | ||
return React.createElement(Resolver, null, _render); | ||
} | ||
@@ -369,21 +354,19 @@ }]); | ||
Resolved.displayName = 'Resolved'; | ||
_defineProperty(Resolved, "displayName", 'Resolved'); | ||
return Resolved; | ||
}); | ||
}; | ||
}); | ||
var resolve = (function (prop, promise) { | ||
var cache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; | ||
var asyncProps = (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object' ? prop : _defineProperty({}, prop, promise); | ||
var asyncNames = _Object$keys(asyncProps).map(capitalize).join(''); | ||
var cacheEnabled = (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object' && typeof promise === 'boolean' ? promise : cache; | ||
var asyncProps = _typeof(prop) === 'object' ? prop : _defineProperty({}, prop, promise); | ||
var asyncNames = Object.keys(asyncProps).map(capitalize).join(''); | ||
var cacheEnabled = _typeof(prop) === 'object' && typeof promise === 'boolean' ? promise : cache; | ||
return function (Component) { | ||
var _class, _temp; | ||
return _temp = _class = function (_React$Component) { | ||
return _temp = _class = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inherits(_class, _React$Component); | ||
@@ -394,15 +377,15 @@ | ||
return _possibleConstructorReturn(this, (_class.__proto__ || _Object$getPrototypeOf(_class)).apply(this, arguments)); | ||
return _possibleConstructorReturn(this, _getPrototypeOf(_class).apply(this, arguments)); | ||
} | ||
_createClass(_class, [{ | ||
key: 'render', | ||
key: "render", | ||
value: function render() { | ||
return React.createElement( | ||
Resolver, | ||
{ props: this.props, resolve: asyncProps, cache: cacheEnabled }, | ||
function (resolved) { | ||
return React.createElement(Component, resolved); | ||
} | ||
); | ||
return React.createElement(Resolver, { | ||
props: this.props, | ||
resolve: asyncProps, | ||
cache: cacheEnabled | ||
}, function (resolved) { | ||
return React.createElement(Component, resolved); | ||
}); | ||
} | ||
@@ -412,3 +395,3 @@ }]); | ||
return _class; | ||
}(React.Component), _class.displayName = asyncNames + 'Resolver', _temp; | ||
}(React.Component), _defineProperty(_class, "displayName", "".concat(asyncNames, "Resolver")), _temp; | ||
}; | ||
@@ -419,27 +402,27 @@ }); | ||
var promise = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; | ||
var loadProps = typeof prop === 'string' ? [prop] : prop; | ||
var names = loadProps.map(capitalize).join(''); | ||
return function (Component) { | ||
var _class, _temp; | ||
return _temp = _class = function (_React$Component) { | ||
return _temp = _class = | ||
/*#__PURE__*/ | ||
function (_React$Component) { | ||
_inherits(_class, _React$Component); | ||
function _class(props, context) { | ||
var _this; | ||
_classCallCheck(this, _class); | ||
var _this = _possibleConstructorReturn(this, (_class.__proto__ || _Object$getPrototypeOf(_class)).call(this, props, context)); | ||
_this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props, context)); | ||
_this.enqueue = function (promise) { | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "enqueue", function (promise) { | ||
_this.queue.push(promise); | ||
return promise; | ||
}; | ||
}); | ||
_this.isLoaded = function () { | ||
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "isLoaded", function () { | ||
var loaded = true; | ||
loadProps.forEach(function (prop) { | ||
@@ -450,5 +433,4 @@ if (!hasOwnProperty(_this.props, prop) || !_this.props[prop]) { | ||
}); | ||
return loaded; | ||
}; | ||
}); | ||
@@ -464,3 +446,3 @@ _this.queue = []; | ||
_createClass(_class, [{ | ||
key: 'componentDidMount', | ||
key: "componentDidMount", | ||
value: function componentDidMount() { | ||
@@ -472,3 +454,3 @@ if (promise) { | ||
}, { | ||
key: 'render', | ||
key: "render", | ||
value: function render() { | ||
@@ -479,3 +461,2 @@ var _this2 = this; | ||
if (bypass || this.isLoaded()) { | ||
@@ -485,18 +466,11 @@ return React.createElement(Component, this.props); | ||
return React.createElement( | ||
React.Fragment, | ||
null, | ||
React.createElement(Loader, null), | ||
!promise && React.createElement( | ||
'div', | ||
{ style: { display: 'none' } }, | ||
React.createElement( | ||
Resolver, | ||
{ onResolve: this.enqueue }, | ||
function (resolved) { | ||
return React.createElement(Component, _extends({}, _this2.props, resolved)); | ||
} | ||
) | ||
) | ||
); | ||
return React.createElement(React.Fragment, null, React.createElement(Loader, null), !promise && React.createElement("div", { | ||
style: { | ||
display: 'none' | ||
} | ||
}, React.createElement(Resolver, { | ||
onResolve: this.enqueue | ||
}, function (resolved) { | ||
return React.createElement(Component, _extends({}, _this2.props, resolved)); | ||
}))); | ||
} | ||
@@ -506,5 +480,5 @@ }]); | ||
return _class; | ||
}(React.Component), _class.displayName = names + 'ClientResolver', _class.contextTypes = { | ||
}(React.Component), _defineProperty(_class, "displayName", "".concat(names, "ClientResolver")), _defineProperty(_class, "contextTypes", { | ||
resolver: PropTypes.object | ||
}, _temp; | ||
}), _temp; | ||
}; | ||
@@ -511,0 +485,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var _Object$getPrototypeOf=_interopDefault(require("babel-runtime/core-js/object/get-prototype-of")),_classCallCheck=_interopDefault(require("babel-runtime/helpers/classCallCheck")),_createClass=_interopDefault(require("babel-runtime/helpers/createClass")),_possibleConstructorReturn=_interopDefault(require("babel-runtime/helpers/possibleConstructorReturn")),_inherits=_interopDefault(require("babel-runtime/helpers/inherits")),_Object$keys=_interopDefault(require("babel-runtime/core-js/object/keys")),_defineProperty=_interopDefault(require("babel-runtime/helpers/defineProperty")),_typeof=_interopDefault(require("babel-runtime/helpers/typeof")),React=_interopDefault(require("react")),_Promise=_interopDefault(require("babel-runtime/core-js/promise")),_extends=_interopDefault(require("babel-runtime/helpers/extends")),PropTypes=_interopDefault(require("prop-types")),ReactDOM=_interopDefault(require("react-dom")),server=require("react-dom/server"),canUseDom=function(){return"undefined"!=typeof window},capitalize=function(e){return e.replace(/^./,function(e){return e.toUpperCase()})},hasOwnProperty=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},HAS_RESOLVED="ReactResolver.HAS_RESOLVED",IS_CLIENT="ReactResolver.IS_CLIENT",Resolver=function(e){function t(e,r){_classCallCheck(this,t);var n=_possibleConstructorReturn(this,(t.__proto__||_Object$getPrototypeOf(t)).call(this,e,r));return n.unMounted=!0,n[HAS_RESOLVED]=!1,n[IS_CLIENT]=!1,n.state=n.computeState(n.props,{pending:{},resolved:{}}),n.isPending(n.state)?(n.resolve(n.state),n[HAS_RESOLVED]=!1):n[HAS_RESOLVED]=!0,n}return _inherits(t,e),_createClass(t,[{key:"cached",value:function(e){var t=this.props,r=t.props;if(t.cache||!canUseDom()){if(hasOwnProperty(r,e))return r[e];if(this.context.resolver)return this.context.resolver.cached(e)}return null}},{key:"componentWillMount",value:function(){this.unMounted=!1}},{key:"componentDidMount",value:function(){this[IS_CLIENT]=!0}},{key:"componentWillUnmount",value:function(){this.unMounted=!0}},{key:"componentWillReceiveProps",value:function(e){var t=this.computeState(e,this.state),r={pending:t.pending,resolved:t.resolved};this.setAtomicState(r)}},{key:"computeState",value:function(e,t){var r=this,n=e.resolve,o=t;return _Object$keys(n).forEach(function(e){var s=r.cached(e);hasOwnProperty(t.resolved,e)||hasOwnProperty(t.pending,e)||r.isValidCache(s)?s&&(o.resolved[e]=!0):o.pending[e]=n[e]}),o}},{key:"getChildContext",value:function(){return{resolver:this}}},{key:"isValidCache",value:function(e){return null!==e&&void 0!==e&&("object"!==(void 0===e?"undefined":_typeof(e))||_Object$keys(e).length>0)&&(!Array.isArray(e)||e.length>0)}},{key:"isPending",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state;return _Object$keys(e.pending).length>0}},{key:"isParentPending",value:function(){var e=this.context.resolver;return!!e&&(e.isPending()||e.isParentPending())}},{key:"onResolve",value:function(e){return this.props.onResolve?this.props.onResolve(e):this.context.resolver?this.context.resolver.onResolve(e):e}},{key:"render",value:function(){return!!this[HAS_RESOLVED]&&(this.isPending(this.state)&&this.resolve(this.state),this.props.children(_extends({},this.props.props)))}},{key:"resolve",value:function(e){var t=this,r=this.props.props,n=_Object$keys(e.pending).map(function(t){return{name:t,func:e.pending[t]}}),o=n.map(function(e){return(0,e.func)(r)}),s=_Promise.all(o).then(function(e){return e.reduce(function(e,t,r){return e[n[r].name]=!0,e},{})});(s=this.onResolve(s)).then(function(r){if(t[HAS_RESOLVED]=!0,!t[IS_CLIENT])return!1;var n={pending:{},resolved:_extends({},e.resolved,r)};t.setAtomicState(n)})}},{key:"shouldComponentUpdate",value:function(e,t){return!this.isParentPending()&&(!this.isPending(t)&&this[HAS_RESOLVED])}},{key:"setAtomicState",value:function(e){this.unMounted||this.setState(e)}}]),t}(React.Component);Resolver.childContextTypes={resolver:PropTypes.object},Resolver.contextTypes={resolver:PropTypes.object},Resolver.defaultProps={props:{},resolve:{}},Resolver.displayName="Resolver",Resolver.propTypes={children:PropTypes.func.isRequired,props:PropTypes.object,resolve:PropTypes.object},Resolver.renderClient=function(e,t){ReactDOM.hydrate(React.createElement(Resolver,null,e),t)},Resolver.renderServer=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];return server.renderToStaticMarkup(React.createElement(Resolver,{onResolve:function(e){return r.push(e),_Promise.resolve(!0)}},e)),_Promise.all(r).then(function(r){var n={};r.forEach(function(e){return _Object$keys(e).forEach(function(t){n[t]=e[t]})});var o=_extends({},t,n);if(_Object$keys(t).length<_Object$keys(o).length)return Resolver.renderServer(e,o);var s=function(t){function r(){return _classCallCheck(this,r),_possibleConstructorReturn(this,(r.__proto__||_Object$getPrototypeOf(r)).apply(this,arguments))}return _inherits(r,t),_createClass(r,[{key:"render",value:function(){return React.createElement(Resolver,null,e)}}]),r}(React.Component);return s.displayName="Resolved",s})};var resolve=function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n="object"===(void 0===e?"undefined":_typeof(e))?e:_defineProperty({},e,t),o=_Object$keys(n).map(capitalize).join(""),s="object"===(void 0===e?"undefined":_typeof(e))&&"boolean"==typeof t?t:r;return function(e){var t,r;return r=t=function(t){function r(){return _classCallCheck(this,r),_possibleConstructorReturn(this,(r.__proto__||_Object$getPrototypeOf(r)).apply(this,arguments))}return _inherits(r,t),_createClass(r,[{key:"render",value:function(){return React.createElement(Resolver,{props:this.props,resolve:n,cache:s},function(t){return React.createElement(e,t)})}}]),r}(React.Component),t.displayName=o+"Resolver",r}},client=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n="string"==typeof e?[e]:e,o=n.map(capitalize).join("");return function(e){var s,i;return i=s=function(o){function s(e,t){_classCallCheck(this,s);var o=_possibleConstructorReturn(this,(s.__proto__||_Object$getPrototypeOf(s)).call(this,e,t));return o.enqueue=function(e){return o.queue.push(e),e},o.isLoaded=function(){var e=!0;return n.forEach(function(t){hasOwnProperty(o.props,t)&&o.props[t]||(e=!1)}),e},o.queue=[],o.state={bypass:!canUseDom()&&!r||"test"===process.env.NODE_ENV,loaded:o.isLoaded(e)},o}return _inherits(s,o),_createClass(s,[{key:"componentDidMount",value:function(){r&&r(this.props)}},{key:"render",value:function(){var n=this;return this.state.bypass||this.isLoaded()?React.createElement(e,this.props):React.createElement(React.Fragment,null,React.createElement(t,null),!r&&React.createElement("div",{style:{display:"none"}},React.createElement(Resolver,{onResolve:this.enqueue},function(t){return React.createElement(e,_extends({},n.props,t))})))}}]),s}(React.Component),s.displayName=o+"ClientResolver",s.contextTypes={resolver:PropTypes.object},i}};exports.resolve=resolve,exports.client=client,exports.Resolver=Resolver; | ||
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var _classCallCheck=_interopDefault(require("@babel/runtime/helpers/classCallCheck")),_createClass=_interopDefault(require("@babel/runtime/helpers/createClass")),_possibleConstructorReturn=_interopDefault(require("@babel/runtime/helpers/possibleConstructorReturn")),_getPrototypeOf=_interopDefault(require("@babel/runtime/helpers/getPrototypeOf")),_inherits=_interopDefault(require("@babel/runtime/helpers/inherits")),_defineProperty=_interopDefault(require("@babel/runtime/helpers/defineProperty")),_typeof=_interopDefault(require("@babel/runtime/helpers/typeof")),React=_interopDefault(require("react")),_objectSpread=_interopDefault(require("@babel/runtime/helpers/objectSpread")),_assertThisInitialized=_interopDefault(require("@babel/runtime/helpers/assertThisInitialized")),PropTypes=_interopDefault(require("prop-types")),ReactDOM=_interopDefault(require("react-dom")),server=require("react-dom/server"),_extends=_interopDefault(require("@babel/runtime/helpers/extends")),canUseDom=function(){return"undefined"!=typeof window},capitalize=function(e){return e.replace(/^./,function(e){return e.toUpperCase()})},hasOwnProperty=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},HAS_RESOLVED="ReactResolver.HAS_RESOLVED",IS_CLIENT="ReactResolver.IS_CLIENT",Resolver=function(e){function n(e,t){var r;return _classCallCheck(this,n),r=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this,e,t)),_defineProperty(_assertThisInitialized(_assertThisInitialized(r)),"unMounted",!0),r[HAS_RESOLVED]=!1,r[IS_CLIENT]=!1,r.state=r.computeState(r.props,{pending:{},resolved:{}}),r.isPending(r.state)?(r.resolve(r.state),r[HAS_RESOLVED]=!1):r[HAS_RESOLVED]=!0,r}return _inherits(n,e),_createClass(n,[{key:"cached",value:function(e){var t=this.props,r=t.props;if(t.cache||!canUseDom()){if(hasOwnProperty(r,e))return r[e];if(this.context.resolver)return this.context.resolver.cached(e)}return null}},{key:"componentWillMount",value:function(){this.unMounted=!1}},{key:"componentDidMount",value:function(){this[IS_CLIENT]=!0}},{key:"componentWillUnmount",value:function(){this.unMounted=!0}},{key:"componentWillReceiveProps",value:function(e){var t=this.computeState(e,this.state),r={pending:t.pending,resolved:t.resolved};this.setAtomicState(r)}},{key:"computeState",value:function(e,r){var n=this,o=e.resolve,s=r;return Object.keys(o).forEach(function(e){var t=n.cached(e);hasOwnProperty(r.resolved,e)||hasOwnProperty(r.pending,e)||n.isValidCache(t)?t&&(s.resolved[e]=!0):s.pending[e]=o[e]}),s}},{key:"getChildContext",value:function(){return{resolver:this}}},{key:"isValidCache",value:function(e){return null!=e&&("object"!==_typeof(e)||0<Object.keys(e).length)&&(!Array.isArray(e)||0<e.length)}},{key:"isPending",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.state;return 0<Object.keys(e.pending).length}},{key:"isParentPending",value:function(){var e=this.context.resolver;return!!e&&(e.isPending()||e.isParentPending())}},{key:"onResolve",value:function(e){return this.props.onResolve?this.props.onResolve(e):this.context.resolver?this.context.resolver.onResolve(e):e}},{key:"render",value:function(){return!!this[HAS_RESOLVED]&&(this.isPending(this.state)&&this.resolve(this.state),this.props.children(_objectSpread({},this.props.props)))}},{key:"resolve",value:function(r){var n=this,t=this.props.props,o=Object.keys(r.pending).map(function(e){return{name:e,func:r.pending[e]}}),e=o.map(function(e){return(0,e.func)(t)}),s=Promise.all(e).then(function(e){return e.reduce(function(e,t,r){return e[o[r].name]=!0,e},{})});(s=this.onResolve(s)).then(function(e){if(n[HAS_RESOLVED]=!0,!n[IS_CLIENT])return!1;var t={pending:{},resolved:_objectSpread({},r.resolved,e)};n.setAtomicState(t)})}},{key:"shouldComponentUpdate",value:function(e,t){return!this.isParentPending()&&(!this.isPending(t)&&this[HAS_RESOLVED])}},{key:"setAtomicState",value:function(e){this.unMounted||this.setState(e)}}]),n}(React.Component);_defineProperty(Resolver,"childContextTypes",{resolver:PropTypes.object}),_defineProperty(Resolver,"contextTypes",{resolver:PropTypes.object}),_defineProperty(Resolver,"defaultProps",{props:{},resolve:{}}),_defineProperty(Resolver,"displayName","Resolver"),_defineProperty(Resolver,"propTypes",{children:PropTypes.func.isRequired,props:PropTypes.object,resolve:PropTypes.object}),_defineProperty(Resolver,"renderClient",function(e,t){ReactDOM.hydrate(React.createElement(Resolver,null,e),t)}),_defineProperty(Resolver,"renderServer",function(o){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t=[];return server.renderToStaticMarkup(React.createElement(Resolver,{onResolve:function(e){return t.push(e),Promise.resolve(!0)}},o)),Promise.all(t).then(function(e){var r={};e.forEach(function(t){return Object.keys(t).forEach(function(e){r[e]=t[e]})});var t=_objectSpread({},s,r);if(Object.keys(s).length<Object.keys(t).length)return Resolver.renderServer(o,t);var n=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:"render",value:function(){return React.createElement(Resolver,null,o)}}]),t}(React.Component);return _defineProperty(n,"displayName","Resolved"),n})});var resolve=function(e,t){var r=!(2<arguments.length&&void 0!==arguments[2])||arguments[2],n="object"===_typeof(e)?e:_defineProperty({},e,t),o=Object.keys(n).map(capitalize).join(""),s="object"===_typeof(e)&&"boolean"==typeof t?t:r;return function(r){var e,t;return t=e=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:"render",value:function(){return React.createElement(Resolver,{props:this.props,resolve:n,cache:s},function(e){return React.createElement(r,e)})}}]),t}(React.Component),_defineProperty(e,"displayName","".concat(o,"Resolver")),t}},client=function(e,o){var s=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,i="string"==typeof e?[e]:e,n=i.map(capitalize).join("");return function(r){var e,t;return t=e=function(e){function n(e,t){var r;return _classCallCheck(this,n),r=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this,e,t)),_defineProperty(_assertThisInitialized(_assertThisInitialized(r)),"enqueue",function(e){return r.queue.push(e),e}),_defineProperty(_assertThisInitialized(_assertThisInitialized(r)),"isLoaded",function(){var t=!0;return i.forEach(function(e){hasOwnProperty(r.props,e)&&r.props[e]||(t=!1)}),t}),r.queue=[],r.state={bypass:!canUseDom()&&!s||"test"===process.env.NODE_ENV,loaded:r.isLoaded(e)},r}return _inherits(n,e),_createClass(n,[{key:"componentDidMount",value:function(){s&&s(this.props)}},{key:"render",value:function(){var t=this;return this.state.bypass||this.isLoaded()?React.createElement(r,this.props):React.createElement(React.Fragment,null,React.createElement(o,null),!s&&React.createElement("div",{style:{display:"none"}},React.createElement(Resolver,{onResolve:this.enqueue},function(e){return React.createElement(r,_extends({},t.props,e))})))}}]),n}(React.Component),_defineProperty(e,"displayName","".concat(n,"ClientResolver")),_defineProperty(e,"contextTypes",{resolver:PropTypes.object}),t}};exports.resolve=resolve,exports.client=client,exports.Resolver=Resolver; | ||
//# sourceMappingURL=react-esc-resolver.production.js.map |
{ | ||
"name": "react-esc-resolver", | ||
"version": "5.0.0-beta.1", | ||
"version": "5.0.0-beta.2", | ||
"description": "Easy to use Client and Server Resolver", | ||
@@ -32,3 +32,2 @@ "keywords": [ | ||
"build": "rollup -c=../../rollup.config.js", | ||
"build:old": "NODE_ENV=production babel src -d ./ --copy-files --ignore __tests__", | ||
"build:watch": "yarn run build --watch", | ||
@@ -35,0 +34,0 @@ "cleanup": "rimraf cjs" |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
58328
9
414
1