mobx-state-tree-entity
Version:
React state management made for humans.
1 lines • 5.61 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("mobx-state-tree"),require("axios")):"function"==typeof define&&define.amd?define(["mobx-state-tree","axios"],e):"object"==typeof exports?exports["mobx-state-tree-entity"]=e(require("mobx-state-tree"),require("axios")):t["mobx-state-tree-entity"]=e(t[void 0],t.axios)}(window,function(r,a){return s={},n.m=o=[function(t,e){t.exports=r},function(t,e){t.exports=a},function(t,e,r){"use strict";var i,a;r.r(e),(a=i=i||{})[a.PENDING=0]="PENDING",a[a.IN_PROGRESS=1]="IN_PROGRESS",a[a.SUCCESS=2]="SUCCESS",a[a.ERROR=3]="ERROR";function n(t,s){var e,r=y(t),a=[u.types.model("",{metadata:p,persistedValue:u.types.optional(r,t),value:u.types.optional(r,t)}).actions(function(o){return{read:Object(u.flow)(function(e){var r,a,n;return c(this,function(t){switch(t.label){case 0:o.metadata.isLoading=!0,o.metadata.isHydrating=!o.metadata.hasHydrated,t.label=1;case 1:return t.trys.push([1,3,4,5]),o.metadata.status=i.IN_PROGRESS,r=e?s+"/"+e:s,[4,l.a.get(r)];case 2:return a=t.sent(),Object(u.applySnapshot)(o.value,a.data),Object(u.applySnapshot)(o.persistedValue,a.data),o.metadata.status=i.SUCCESS,[3,5];case 3:return n=t.sent(),o.metadata.error=JSON.stringify(n),o.metadata.status=i.ERROR,[3,5];case 4:return o.metadata.isLoading=!1,o.metadata.isHydrating=!1,o.metadata.hasHydrated=!0,[7];case 5:return[2,o.persistedValue]}})}),update:Object(u.flow)(function(e){var r,a,n;return c(this,function(t){switch(t.label){case 0:o.metadata.isLoading=!0,o.metadata.isHydrating=!o.metadata.hasHydrated,t.label=1;case 1:return t.trys.push([1,3,4,5]),o.metadata.status=i.IN_PROGRESS,r=e?s+"/"+e:s,[4,l.a.put(r,o.value)];case 2:return a=t.sent(),Object(u.applySnapshot)(o.persistedValue,a.data),Object(u.applySnapshot)(o.value,a.data),o.metadata.status=i.SUCCESS,[3,5];case 3:return n=t.sent(),o.metadata.error=JSON.stringify(n),o.metadata.status=i.ERROR,[3,5];case 4:return o.metadata.isLoading=!1,o.metadata.isHydrating=!1,o.metadata.hasHydrated=!0,[7];case 5:return[2,o.persistedValue]}})})}}),{metadata:{error:null,hasLoaded:!1,isDirty:!1,isHydrating:!1,isLoading:!1,status:i.PENDING},value:t}];return e=a,u.types.optional(e[0],e[1])}var u=r(0),o=r(1),l=r.n(o),s=function(){return(s=Object.assign||function(t){for(var e,r=1,a=arguments.length;r<a;r++)for(var n in e=arguments[r])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},c=function(r,a){var n,o,s,t,i={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return t={next:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,o&&(s=2&e[0]?o.return:e[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,e[1])).done)return s;switch(o=0,s&&(e=[2&e[0],s.value]),e[0]){case 0:case 1:s=e;break;case 4:return i.label++,{value:e[1],done:!1};case 5:i.label++,o=e[1],e=[0];continue;case 7:e=i.ops.pop(),i.trys.pop();continue;default:if(!(s=0<(s=i.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){i=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3])){i.label=e[1];break}if(6===e[0]&&i.label<s[1]){i.label=s[1],s=e;break}if(s&&i.label<s[2]){i.label=s[2],i.ops.push(e);break}s[2]&&i.ops.pop(),i.trys.pop();continue}e=a.call(r,i)}catch(t){e=[6,t],o=0}finally{n=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}},p=u.types.model("Metadata",{error:u.types.maybeNull(u.types.string),isHydrating:u.types.optional(u.types.boolean,!1),isLoading:u.types.optional(u.types.boolean,!1),status:u.types.optional(u.types.integer,i.PENDING)}).volatile(function(){return{hasHydrated:!1}}).views(function(r){return{get isDirty(){var t=Object(u.getParent)(r).value,e=Object(u.getParent)(r).persistedValue;return e&&t&&JSON.stringify(t)!==JSON.stringify(e)},get hasError(){return!!r.error}}}),d=function(t){switch(typeof t){case"string":return u.types.string;case"boolean":return u.types.boolean;case"number":return u.types.number;case"object":return Array.isArray(t)?0===t.length?u.types.array(u.types.string):u.types.array(d(t[0])):y(t);default:throw new Error("state-to-mox-state-tree-types")}},y=function(t){if("object"!=typeof t||Array.isArray(t))throw new Error("");for(var e={},r=0,a=Object.keys(t);r<a.length;r++){var n=a[r],o=t[n];e[n]=d(o)}return u.types.model(e).actions(function(r){return{setValues:function(t){var e=s({},r,t);Object(u.applySnapshot)(r,e)}}})};r.d(e,"Status",function(){return i}),r.d(e,"deriveModelFromState",function(){return y}),r.d(e,"useSingletonEntity",function(){return n})},function(t,e,r){t.exports=r(2)}],n.c=s,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=3);function n(t){if(s[t])return s[t].exports;var e=s[t]={i:t,l:!1,exports:{}};return o[t].call(e.exports,e,e.exports,n),e.l=!0,e.exports}var o,s});