@loona/core
Version:
App State Management done with GraphQL (core package)
2 lines • 9.94 kB
JavaScript
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("immer"),require("apollo-link"),require("apollo-link-state")):"function"==typeof define&&define.amd?define("@loona/core",["exports","immer","apollo-link","apollo-link-state"],n):n((t.loona=t.loona||{},t.loona.core={}),t.immer,t.apolloLink.core,t.apolloLink.state)}(this,function(t,f,n,o){"use strict";f=f&&f.hasOwnProperty("default")?f["default"]:f;var 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 a(t,n){function e(){this.constructor=t}r(t,n),t.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}var s=function(){return(s=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)};function u(r,o){var a,i,u,t,c={label:0,sent:function(){if(1&u[0])throw u[1];return u[1]},trys:[],ops:[]};return t={next:n(0),"throw":n(1),"return":n(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function n(n){return function(t){return function e(t){if(a)throw new TypeError("Generator is already executing.");for(;c;)try{if(a=1,i&&(u=2&t[0]?i["return"]:t[0]?i["throw"]||((u=i["return"])&&u.call(i),0):i.next)&&!(u=u.call(i,t[1])).done)return u;switch(i=0,u&&(t=[2&t[0],u.value]),t[0]){case 0:case 1:u=t;break;case 4:return c.label++,{value:t[1],done:!1};case 5:c.label++,i=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(u=0<(u=c.trys).length&&u[u.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!u||t[1]>u[0]&&t[1]<u[3])){c.label=t[1];break}if(6===t[0]&&c.label<u[1]){c.label=u[1],u=t;break}if(u&&c.label<u[2]){c.label=u[2],c.ops.push(t);break}u[2]&&c.ops.pop(),c.trys.pop();continue}t=o.call(r,c)}catch(n){t=[6,n],i=0}finally{a=u=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([n,t])}}}function c(t,n){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,a=e.call(t),i=[];try{for(;(void 0===n||0<n--)&&!(r=a.next()).done;)i.push(r.value)}catch(u){o={error:u}}finally{try{r&&!r.done&&(e=a["return"])&&e.call(a)}finally{if(o)throw o.error}}return i}var e=function(){function t(t){void 0===t&&(t={}),this.store=new Map(Object.entries(t))}return t.prototype.get=function(t){return this.store.get(t)},t.prototype.set=function(t,n){this.store.set(t,n)},t.prototype.forEach=function(t){this.store.forEach(t)},t}();function p(t,n){return s({},t,{patchQuery:i(n),patchFragment:h(t,n),writeData:function(t){return n.writeData(t)}})}function l(n){return function(t){if(n.config)return n.config.dataIdFromObject(t);throw new Error("To use context.getCacheKey, you need to use a cache that has a configurable dataIdFromObject, like apollo-cache-inmemory.")}}function d(t){return t.definitions.find(function(t){return"FragmentDefinition"===t.kind}).typeCondition.name.value}function i(a){return function(t,n){var e=y(t)?{query:t}:t,r=a.readQuery(e),o=f(r,n);return a.writeQuery(s({},e,{data:o})),o}}function h(u,c){return function(t,n,e){var r=d(t),o=u.getCacheKey(s({},n,{__typename:r})),a=c.readFragment({fragment:t,id:o}),i=f(a,e);return c.writeFragment({fragment:t,id:o,data:s({},i,{__typename:r})}),i}}function y(t){return t&&"Document"===t.kind}var m=function(e){function t(t){var n=e.call(this)||this;return t&&t.forEach(function(t){n.set(t.mutation,t)}),n}return a(t,e),t.prototype.add=function(t){var n=this;t.forEach(function(t){n.set(t.mutation,t)})},t}(e);function v(t){return w(g(t))}function g(t){return t.constructor&&t.constructor.mutation?t.constructor.mutation:t.mutation}function b(t){return void 0!==g(t)}function w(t){return function n(t){return t.selectionSet.selections[0]}(function e(t){var n=t.definitions.filter(function(t){return"OperationDefinition"===t.kind&&"mutation"===t.operation});if(!n||!n[0])throw new Error("Must contain a mutation definition.");return n[0]}(t)).name.value}var D=function(r){function t(t){var n=r.call(this)||this;return t&&n.add(t),n}return a(t,r),t.prototype.add=function(t){var e=this;Array.isArray(t)||(t=[t]),t.forEach(function(t){var n=e.get(t.mutation)||[];n.push(t),r.prototype.set.call(e,t.mutation,n)})},t.prototype.set=function(){console.error("Use add() instead")},t}(e),M=function(e){function t(t){var n=e.call(this)||this;return t&&n.add(t),n}return a(t,e),t.prototype.add=function(t){var n=this;t.forEach(function(t){n.set(t.path,t)})},t}(e),k="@@loona";function E(t){return t.constructor[k]}function O(t){if(!t.hasOwnProperty(k)){Object.defineProperty(t,k,{value:{defaults:{},mutations:[],resolvers:[],updates:[],typeDefs:[],effects:{}}})}return t[k]}function A(t,n,e){O(t.constructor).mutations.push({propName:n,mutation:e})}function C(r,t,o){return void 0===o&&(o=function(t){return t}),t.mutations.map(function(t){var n=t.propName,e=t.mutation;return{mutation:"string"==typeof e?e:w(e),resolve:o(r[n].bind(r))}})}function _(t,n,e){O(t.constructor).updates.push({propName:n,mutation:e})}function x(e,t,r){if(void 0===r&&(r=function(t){return t}),t.updates)return t.updates.map(function(t){var n=t.propName;return{mutation:t.mutation,resolve:r(e[n].bind(e))}})}function S(t,n,e){O(t.constructor).resolvers.push({propName:n,path:e})}function j(e,t,r){return void 0===r&&(r=function(t){return t}),t.resolvers.map(function(t){var n=t.propName;return{name:n,path:t.path,resolve:r(e[n].bind(e))}})}var F=function(){function t(t){this.getClient=function(){throw new Error("Manager requires ApolloClient")},this.cache=t.cache,this.defaults=t.defaults,this.typeDefs=t.typeDefs,this.resolvers=new M(t.resolvers),this.updates=new D(t.updates),this.mutations=new m(t.mutations),t.getClient&&(this.getClient=t.getClient)}return t.prototype.addState=function(t,n,e){var r;this.mutations.add(C(t,n,e)),this.updates.add(x(t,n,e)||[]),this.resolvers.add(j(t,n,e)||[]),n.defaults&&this.cache.writeData({data:n.defaults}),n.typeDefs&&(this.typeDefs||(this.typeDefs=[]),"string"==typeof this.typeDefs&&(this.typeDefs=[this.typeDefs]),(r=this.typeDefs).push.apply(r,function o(){for(var t=[],n=0;n<arguments.length;n++)t=t.concat(c(arguments[n]));return t}("string"==typeof n.typeDefs?[n.typeDefs]:n.typeDefs)))},t}();function N(r){var o={};return r.mutations.forEach(function(t,n){o[n]=function e(o,a){var i=this;return function(t,n,e){return function r(n,i,u,c){return new(u||(u=Promise))(function(t,e){function r(t){try{a(c.next(t))}catch(n){e(n)}}function o(t){try{a(c["throw"](t))}catch(n){e(n)}}function a(n){n.done?t(n.value):new u(function(t){t(n.value)}).then(r,o)}a((c=c.apply(n,i||[])).next())})}(i,void 0,void 0,function(){return u(this,function(t){return[2,o.resolve(n,p(e,a.getClient()))]})})}}(t,r)}),o}function L(o){var i={};return o.resolvers.forEach(function(t){var n=c(t.path.split("."),2),e=n[0],r=n[1];i[e]||(i[e]={}),i[e][r]=function a(r,o){return function(t,n,e){return r.resolve(t,n,p(e,o.getClient()))}}(t,o)}),i}var P=function(r){function t(t){var n=r.call(this)||this;return!function e(t){return t instanceof F}(t)?n.manager=new F(t):n.manager=t,n.stateLink=o.withClientState({cache:n.manager.cache,resolvers:function(){return s({Mutation:N(n.manager)},L(n.manager))},defaults:n.manager.defaults,typeDefs:n.manager.typeDefs}),n}return a(t,r),t.prototype.request=function(t,n){return this.stateLink.request(t,n)},t}(n.ApolloLink);function T(t,n){var e=O(t);void 0!==n&&(e.defaults=n.defaults,e.typeDefs=n.typeDefs)}function q(t,n,e){var r,o,a=O(t.constructor);try{for(var i=function s(t){var n="function"==typeof Symbol&&t[Symbol.iterator],e=0;return n?n.call(t):{next:function(){return t&&e>=t.length&&(t=void 0),{value:t&&t[e++],done:!t}}}}(e),u=i.next();!u.done;u=i.next()){var c=u.value,f=undefined;if("string"==typeof c?f=c:b(c)?f=v(c):y(c)?f=w(c):"string"==typeof c.type&&(f=c.type),!f)throw new Error("Loona couldn't figure out the type of the action");a.effects[f]||(a.effects[f]=[]),a.effects[f].push({propName:n,type:f})}}catch(p){r={error:p}}finally{try{u&&!u.done&&(o=i["return"])&&o.call(i)}finally{if(r)throw r.error}}}t.LoonaLink=P,t.Manager=F,t.Mutation=function K(r){return function(t,n,e){A(t,n,g(r)||r)}},t.Resolve=function U(r){return function(t,n,e){S(t,n,r)}},t.State=function Q(n){return function(t){return T(t,n),t}},t.Update=function R(a){return function(t,n,e){var r;if(b(a)){var o=g(a);if(!o)throw new Error("Mutation "+a.name+" is missing a static property 'mutation'");r=w(o)}else r="string"==typeof a?a:w(a);_(t,n,r)}},t.Effect=function G(r){return function(t,n,e){q(t,n,Array.isArray(r)?r:[r])}},t.buildContext=p,t.buildGetCacheKey=l,t.getFragmentTypename=d,t.patchQuery=i,t.patchFragment=h,t.isDocument=y,t.isMutationAsAction=function I(t){return"mutation"===t.type},t.getActionType=function Y(t){return t.constructor&&t.constructor.type?t.constructor.type:t.type},t.readMetadata=E,t.ensureMetadata=O,t.METADATA_KEY=k,t.setMutationMetadata=A,t.hasMutation=function z(t,n){var e=E(t);return!!e&&e.mutations.some(function(t){return t.propName===n})},t.transformMutations=C,t.setResolveMetadata=S,t.transformResolvers=j,t.setStateMetadata=T,t.setUpdateMetadata=_,t.transformUpdates=x,t.setEffectMetadata=q,t.mutationToType=v,t.getMutation=g,t.isMutation=b,t.getNameOfMutation=w,t.withUpdates=function B(u,c){var f=u.update;return s({},u,{update:function(t,n){var e=w(u.mutation),r=n.data&&n.data[e],o=p({cache:t,getCacheKey:l(c.cache)},c.getClient()),a=c.updates.get(e);if(a){var i={name:e,variables:u.variables,result:r};a.forEach(function(t){return t.resolve(i,o)})}f&&f(t,n)}})},t.buildActionFromResult=function H(t,n){return s({type:"mutation",options:t,ok:!0},n)},t.buildActionFromError=function J(t,n){return{type:"mutation",options:t,ok:!1,error:n}},t.MutationManager=m,t.ɵb=e,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=loona.core.umd.min.js.map