Socket
Socket
Sign inDemoInstall

react-esc-resolver

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-esc-resolver - npm Package Compare versions

Comparing version 5.0.0-beta.1 to 5.0.0-beta.2

8

CHANGELOG.md

@@ -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)

304

cjs/react-esc-resolver.development.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc