redux-resource-plugins
Version:
Official plugins for Redux Resource
2 lines (1 loc) • 4.81 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("redux-resource")):"function"==typeof define&&define.amd?define(["exports","redux-resource"],t):t(e.ReduxResourcePlugins={},e.ReduxResource)}(this,function(e,d){"use strict";function y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},T=[d.actionTypes.CREATE_RESOURCES_FAILED,d.actionTypes.CREATE_RESOURCES_SUCCEEDED,d.actionTypes.CREATE_RESOURCES_IDLE],_=[d.actionTypes.READ_RESOURCES_FAILED,d.actionTypes.READ_RESOURCES_SUCCEEDED,d.actionTypes.READ_RESOURCES_IDLE],D=[d.actionTypes.UPDATE_RESOURCES_FAILED,d.actionTypes.UPDATE_RESOURCES_SUCCEEDED,d.actionTypes.UPDATE_RESOURCES_IDLE],U=[d.actionTypes.DELETE_RESOURCES_FAILED,d.actionTypes.DELETE_RESOURCES_SUCCEEDED,d.actionTypes.DELETE_RESOURCES_IDLE];var c={SELECT_RESOURCES:"SELECT_RESOURCES",DESELECT_RESOURCES:"DESELECT_RESOURCES",CLEAR_SELECTED_RESOURCES:"CLEAR_SELECTED_RESOURCES"};function t(o){return function(e,t){if((t.resourceType||t.resourceName)!==o)return e;var r=void 0,s=void 0,E=t.resources||[];if(t.type===c.SELECT_RESOURCES){r=[].concat(i(e.selectedIds))||[],s=E.map(function(e){return"object"===(void 0===e?"undefined":p(e))?e.id:e});var u=new Set(r);return s.forEach(function(e){u.has(e)||r.push(e)}),l({},e,{selectedIds:r})}if(t.type!==c.DESELECT_RESOURCES)return t.type===c.CLEAR_SELECTED_RESOURCES?l({},e,{selectedIds:[]}):e;r=[].concat(i(e.selectedIds))||[],s=E.map(function(e){return"object"===(void 0===e?"undefined":p(e))?e.id:e});var n=new Set(s);return l({},e,{selectedIds:r.filter(function(e){return!n.has(e)})})}}t.actionTypes=c,t.selectResources=function(e,t){return{type:c.SELECT_RESOURCES,resourceType:e,resources:t}},t.deselectResources=function(e,t){return{type:c.DESELECT_RESOURCES,resourceType:e,resources:t}},t.clearSelectedResources=function(e){return{type:c.CLEAR_SELECTED_RESOURCES,resourceType:e}},t.initialState={selectedIds:[]};var S={RESET_RESOURCE:"RESET_RESOURCE"};function r(c){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(e,t){var r=t.resourceType||t.resourceName;if(t.type!==S.RESET_RESOURCE||r!==c)return e;var s=t.list,E=t.requestKey||t.request;if(!E&&!s)return l({resources:{},meta:{},lists:{},requests:{}},a.initialState);var u=l({},e);if(E){var n=e.requests[E],o=n&&n.requestName,i={resourceType:r,requestKey:E,ids:[],status:d.requestStatuses.IDLE};o&&(i.requestName=o),u.requests=l({},e.requests,y({},E,i))}return s&&(u.lists=l({},e.lists,y({},s,[]))),u}}r.actionTypes=S,r.resetResource=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return{type:"RESET_RESOURCE",resourceType:e,request:t.request,requestKey:t.requestKey,list:t.list}},e.httpStatusCodes=function(f){return function(e,t){if((t.resourceType||t.resourceName)!==f)return e;var r=!!~T.indexOf(t.type),s=!!~_.indexOf(t.type),E=!!~D.indexOf(t.type),u=!!~U.indexOf(t.type);if(!(r||s||E||u))return e;var n="number"==typeof t.statusCode?t.statusCode:null,o=t.resources,i=void 0,c=t.requestKey||t.request;c&&"string"==typeof c&&(i=c);var a=void 0,S=void 0,R=void 0;(R=o?o.map(function(e){return"object"===(void 0===e?"undefined":p(e))?e.id:e}):[],i)?a=l({},e.requests,y({},i,l({},e.requests[i]||{},{statusCode:n}))):a=l({},e.requests);if(R.length){var C=void 0;r?C="create":s?C="read":E?C="update":u&&(C="delete"),S=d.setResourceMeta({meta:e.meta,newMeta:y({},C+"StatusCode",n),resources:R,mergeMeta:!0})}else S=e.meta;return l({},e,{requests:a,meta:S})}},e.selection=t,e.reset=r,e.includedResources=function(R){var C=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return function(e,t){var r=C.initialResourceMeta,s=t.includedResources,E=t.mergeMeta,u=t.type,n=u===d.actionTypes.CREATE_RESOURCES_SUCCEEDED,o=u===d.actionTypes.UPDATE_RESOURCES_SUCCEEDED;if(!(u===d.actionTypes.READ_RESOURCES_SUCCEEDED)&&!n&&!o)return e;if(!s)return e;var i=s[R];if(!i)return e;var c=d.upsertResources(e.resources,i,t.mergeResources),a={readStatus:d.requestStatuses.SUCCEEDED};n?a.createStatus=d.requestStatuses.SUCCEEDED:o&&(a.updateStatus=d.requestStatuses.SUCCEEDED);var S=d.setResourceMeta({resources:i,meta:e.meta,newMeta:a,initialResourceMeta:r,mergeMeta:E});return l({},e,{meta:S,resources:c})}},Object.defineProperty(e,"__esModule",{value:!0})});