react-esc-resolver
Advanced tools
Comparing version 4.0.0-beta.32 to 5.0.0-alpha.2
@@ -6,52 +6,10 @@ # Change Log | ||
<a name="4.0.0-beta.32"></a> | ||
# [4.0.0-beta.32](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.31...v4.0.0-beta.32) (2018-05-25) | ||
<a name="5.0.0-alpha.2"></a> | ||
# [5.0.0-alpha.2](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.27...v5.0.0-alpha.2) (2018-10-22) | ||
### Bug Fixes | ||
* **esc-resolver:** Bump version ([9672be4](https://github.com/TriPSs/react-esc/commit/9672be4)) | ||
<a name="4.0.0-beta.31"></a> | ||
# [4.0.0-beta.31](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.30...v4.0.0-beta.31) (2018-05-25) | ||
### Features | ||
* **esc-resolver:** Added the cache validator option, a function where you can check if the current prop is still correct ([a51c09c](https://github.com/TriPSs/react-esc/commit/a51c09c)) | ||
<a name="4.0.0-beta.30"></a> | ||
# [4.0.0-beta.30](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.29...v4.0.0-beta.30) (2018-05-19) | ||
### Bug Fixes | ||
* **resolver:** Check in the render client witch method to use ([b2c6114](https://github.com/TriPSs/react-esc/commit/b2c6114)) | ||
* **resolver:** Revert last change ([9bb14e2](https://github.com/TriPSs/react-esc/commit/9bb14e2)) | ||
<a name="4.0.0-beta.29"></a> | ||
# [4.0.0-beta.29](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.28...v4.0.0-beta.29) (2018-05-19) | ||
**Note:** Version bump only for package react-esc-resolver | ||
<a name="4.0.0-beta.28"></a> | ||
# [4.0.0-beta.28](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.27...v4.0.0-beta.28) (2018-05-19) | ||
**Note:** Version bump only for package react-esc-resolver | ||
<a name="4.0.0-beta.18"></a> | ||
@@ -58,0 +16,0 @@ # [4.0.0-beta.18](https://github.com/TriPSs/react-esc/compare/v4.0.0-beta.17...v4.0.0-beta.18) (2018-04-09) |
@@ -71,21 +71,14 @@ 'use strict'; | ||
props = _props.props, | ||
cache = _props.cache, | ||
cacheValidator = _props.cacheValidator; | ||
cache = _props.cache; | ||
var cached = null; | ||
if (cache || !canUseDom()) { | ||
if (hasOwnProperty(props, resolve)) { | ||
cached = props[resolve]; | ||
return props[resolve]; | ||
} else if (this.context.resolver) { | ||
cached = this.context.resolver.cached(resolve); | ||
return this.context.resolver.cached(resolve); | ||
} | ||
} | ||
if (cached && cacheValidator && typeof cacheValidator === 'function') { | ||
return cacheValidator(props); | ||
} | ||
return cached; | ||
return null; | ||
} | ||
@@ -239,6 +232,8 @@ }, { | ||
_this3.setAtomicState({ | ||
var nextState = { | ||
pending: {}, | ||
resolved: _extends({}, state.resolved, resolved) | ||
}); | ||
}; | ||
_this3.setAtomicState(nextState); | ||
}); | ||
@@ -284,5 +279,3 @@ } | ||
props: {}, | ||
resolve: {}, | ||
cache: true, | ||
cacheValidator: null | ||
resolve: {} | ||
}; | ||
@@ -293,5 +286,3 @@ Resolver.displayName = 'Resolver'; | ||
props: PropTypes.object, | ||
resolve: PropTypes.object, | ||
cache: PropTypes.bool, | ||
cacheValidator: PropTypes.func | ||
resolve: PropTypes.object | ||
}; | ||
@@ -368,13 +359,8 @@ | ||
var cache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; | ||
var cacheValid = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; | ||
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 cacheEnabled = (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object' && typeof promise === 'boolean' ? promise : typeof cache === 'function' ? true : cache; | ||
var cacheValidator = typeof cache === 'function' ? cache : cacheValid; | ||
return function (Component) { | ||
@@ -397,7 +383,3 @@ var _class, _temp; | ||
Resolver, | ||
{ | ||
props: this.props, | ||
resolve: asyncProps, | ||
cache: cacheEnabled, | ||
cacheValidator: cacheValidator }, | ||
{ props: this.props, resolve: asyncProps, cache: cacheEnabled }, | ||
function (resolved) { | ||
@@ -499,3 +481,3 @@ return React.createElement(Component, resolved); | ||
}(React.Component), _class.displayName = names + 'ClientResolver', _class.contextTypes = { | ||
resolver: PropTypes.instanceOf(Resolver) | ||
resolver: PropTypes.object | ||
}, _temp; | ||
@@ -502,0 +484,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 _Promise=_interopDefault(require("babel-runtime/core-js/promise")),_extends=_interopDefault(require("babel-runtime/helpers/extends")),_typeof=_interopDefault(require("babel-runtime/helpers/typeof")),_Object$keys=_interopDefault(require("babel-runtime/core-js/object/keys")),_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")),React=_interopDefault(require("react")),PropTypes=_interopDefault(require("prop-types")),ReactDOM=_interopDefault(require("react-dom")),server=require("react-dom/server"),_defineProperty=_interopDefault(require("babel-runtime/helpers/defineProperty")),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,n=t.cache,o=t.cacheValidator,s=null;return!n&&canUseDom()||(hasOwnProperty(r,e)?s=r[e]:this.context.resolver&&(s=this.context.resolver.cached(e))),s&&o&&"function"==typeof o?o(r):s}},{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;t.setAtomicState({pending:{},resolved:_extends({},e.resolved,r)})})}},{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:{},cache:!0,cacheValidator:null},Resolver.displayName="Resolver",Resolver.propTypes={children:PropTypes.func.isRequired,props:PropTypes.object,resolve:PropTypes.object,cache:PropTypes.bool,cacheValidator:PropTypes.func},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=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o="object"===(void 0===e?"undefined":_typeof(e))?e:_defineProperty({},e,t),s=_Object$keys(o).map(capitalize).join(""),i="object"===(void 0===e?"undefined":_typeof(e))&&"boolean"==typeof t?t:"function"==typeof r||r,l="function"==typeof r?r:n;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:o,cache:i,cacheValidator:l},function(t){return React.createElement(e,t)})}}]),r}(React.Component),t.displayName=s+"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.instanceOf(Resolver)},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 _Promise=_interopDefault(require("babel-runtime/core-js/promise")),_extends=_interopDefault(require("babel-runtime/helpers/extends")),_typeof=_interopDefault(require("babel-runtime/helpers/typeof")),_Object$keys=_interopDefault(require("babel-runtime/core-js/object/keys")),_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")),React=_interopDefault(require("react")),PropTypes=_interopDefault(require("prop-types")),ReactDOM=_interopDefault(require("react-dom")),server=require("react-dom/server"),_defineProperty=_interopDefault(require("babel-runtime/helpers/defineProperty")),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; | ||
//# sourceMappingURL=react-esc-resolver.production.js.map |
{ | ||
"name": "react-esc-resolver", | ||
"version": "4.0.0-beta.32", | ||
"version": "5.0.0-alpha.2", | ||
"description": "Easy to use Client and Server Resolver", | ||
@@ -33,17 +33,5 @@ "keywords": [ | ||
"build:old": "NODE_ENV=production babel src -d ./ --copy-files --ignore __tests__", | ||
"build:watch": "npm run build -- --watch", | ||
"build:watch": "yarn run build --watch", | ||
"cleanup": "rimraf cjs" | ||
}, | ||
"devDependencies": { | ||
"babel-cli": "^6.26.0", | ||
"babel-plugin-minify-dead-code-elimination": "^0.2.0", | ||
"babel-plugin-remove-comments": "^2.0.0", | ||
"babel-preset-es2015": "^6.24.1", | ||
"babel-preset-flow": "^6.23.0", | ||
"babel-preset-react": "^6.24.1", | ||
"babel-preset-react-optimize": "^1.0.1", | ||
"babel-preset-stage-0": "^6.24.1", | ||
"prop-types": "^15.6.0", | ||
"rimraf": "^2.6.2" | ||
}, | ||
"peerDependencies": { | ||
@@ -50,0 +38,0 @@ "prop-types": "^15.6.0", |
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
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
0
0
148260
2719