UNPKG

@loona/react

Version:

App State Management done with GraphQL (react integration)

3 lines (2 loc) 6.59 kB
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@loona/core"),require("react"),require("prop-types"),require("react-apollo")):"function"==typeof define&&define.amd?define(["exports","@loona/core","react","prop-types","react-apollo"],n):n((t.loona=t.loona||{},t.loona.react={}),t.loona.core,t.React,t.PropTypes,t["react-apollo"])}(this,function(t,a,p,e,i){"use strict";var r,c=function(){return(c=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)},o=function(){function t(t,n,e){var r=this;this.client=t,this.manager=n,this.effects={},n.getClient=function(){return t},e.forEach(function(t){var n=new t,e=t[a.METADATA_KEY];r.manager.addState(n,e),r.addEffects(n,e.effects)})}return t.prototype.dispatch=function(t){if(a.isMutation(t)){var n=a.getMutation(t),e=c({mutation:n},t);this.wrapMutation(this.client.mutate(a.withUpdates(e,this.manager)),e)}else this.runEffects(c({type:a.getActionType(t)},t))},t.prototype.addEffects=function(r,t){var o=this;if(t){var n=function(e){i.effects[e]||(i.effects[e]=[]),t[e].forEach(function(t){var n=t.propName;o.effects[e].push(r[n].bind(r))})},i=this;for(var e in t)n(e)}},t.prototype.runEffects=function(n){var t=n.type,e=this.client.cache,r=c({},a.buildContext({cache:e,getCacheKey:a.buildGetCacheKey(e)},this.client),{dispatch:this.dispatch.bind(this)});a.isMutationAsAction(n)&&(t=a.getNameOfMutation(n.options.mutation));var o=this.effects[t];o&&o.forEach(function(t){t(n,r)})},t.prototype.wrapMutation=function(t,n,e){var r=this;void 0===e&&(e=!0),t.then(function(t){r.runEffects(a.buildActionFromResult(n,t))}).catch(function(t){if(r.runEffects(a.buildActionFromError(n,t)),e)throw t})},t}(),f=p.createContext({}),u=(r=function(t,n){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e])})(t,n)},function(t,n){function e(){this.constructor=t}r(t,n),t.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}),n=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return u(n,t),n.prototype.render=function(){var t=this.props,n=t.children,e=t.loona,r=t.states;return p.createElement(i.ApolloConsumer,null,function(t){return p.createElement(f.Provider,{value:{loona:new o(t,e.manager,r)}},n)})},n.propTypes={states:e.array,loona:e.object.isRequired,children:e.node.isRequired},n}(p.Component);function s(t){return t.displayName||t.name||"Component"}var l,h,y=(l=function(t,n){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e])})(t,n)},function(t,n){function e(){this.constructor=t}l(t,n),t.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}),d=function(){return(d=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)},v=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return y(n,t),n.prototype.createDispatch=function(e){var r=this;return function(t){if(!e)throw new Error("No Loona no fun!");var n;n=a.isMutation(t)?t:r.props.action?d({type:r.props.action},t):d({type:a.getActionType(t)},t),e.dispatch(n)}},n.prototype.render=function(){var e=this,r=this.props.children;return p.createElement(f.Consumer,null,function(t){var n=t.loona;return r(e.createDispatch(n))})},n.propTypes={action:e.any,children:e.func.isRequired},n}(p.Component),m=(h=function(t,n){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var e in n)n.hasOwnProperty(e)&&(t[e]=n[e])})(t,n)},function(t,n){function e(){this.constructor=t}h(t,n),t.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}),O=function(){return(O=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)},b=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return m(n,t),n.prototype.render=function(){var r=this,o=this.props.children;return p.createElement(f.Consumer,null,function(t){var e=t.loona;return p.createElement(i.Mutation,O({},r.props),function(t,n){return o(w(e,t,r.props.mutation),n)})})},n.propTypes=i.Mutation.propTypes,n}(p.Component);function w(r,o,i){if(!r)throw new Error("No Loona No Mutation!");return function(t){var n=O(i?{mutation:i}:{},t),e=o(a.withUpdates(n,r.manager));return r.wrapMutation(e,n,!1),e}}var _=function(){return(_=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)};var g=function(){return(g=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t}).apply(this,arguments)};t.LoonaLink=a.LoonaLink,t.state=a.State,t.mutation=a.Mutation,t.update=a.Update,t.resolve=a.Resolve,t.effect=a.Effect,t.Query=i.Query,t.Subscription=i.Subscription,t.LoonaProvider=n,t.createLoona=function(t){return new a.LoonaLink({cache:t})},t.decorate=function(t,o){var i="function"==typeof t?t.prototype:t,n=function(e){var t=o[e];Array.isArray(t)||(t=[t]);var n=Object.getOwnPropertyDescriptor(i,e),r=t.reduce(function(t,n){return n(i,e,t)},n);r&&Object.defineProperty(i,e,r)};for(var e in o)n(e);return t},t.Action=v,t.Mutation=b,t.connect=function(o){return function(r){var t="Connect("+s(r)+")";function n(e){return p.createElement(f.Consumer,null,function(t){var n=t.loona;return function(t,n){if(!n)throw new Error("No Loona no fun!");var e=o(n.dispatch.bind(n));return p.createElement(r,_({},t,e))}(e,n)})}return n.displayName=t,n.WrappedComponent=r,n}},t.graphql=function(t,n){return void 0===n&&(n={}),t.definitions.some(function(t){return"OperationDefinition"===t.kind&&"mutation"===t.operation})?(u=t,void 0===(e=n)&&(e={}),function(a){var c=e.name||"mutate",t=s(a);function n(o){var i=o[c];return p.createElement(f.Consumer,null,function(t){var n,e=t.loona,r=((n={})[c]=w(e,i,u),n);return p.createElement(a,g({},o,r))})}return n.displayName="LoonaMutate("+t+")",n.WrappedComponent=a,i.graphql(u,e)(n)}):i.graphql(t,n);var u,e},Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=loona.react.umd.min.js.map