redux-smart-creators
Version:
Smart creators for actions and reducers
16 lines (13 loc) • 4.16 kB
JavaScript
var r=function(r){if("string"!=typeof r)throw new Error("Action Type must be a string");if(0===r.trim().length)throw new Error("Action Type cannot be an empty string")},n=function(r){return function(n){if(void 0===n){var t=function(n){return{type:r,payload:n}};return t.type=r,t}!function(r){if("function"!=typeof r)throw new Error("You must provide payload function")}(n);var o=function(){for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];return{type:r,payload:n.apply(void 0,t)}};return o.type=r,o}},t=function(r){return r.load=n(r.type),r},o=function(n){r(n);var t=function(){return{type:n}};return t.type=n,t},e=function(r){var n=o(r);return t(n)};function u(r){return null===r?function(r){return e(r)}:function(n){return e("@@"+r+"/"+n)}}var i=["INIT","LOADING","SUCCESS","FAILURE"],a=function(){return(a=Object.assign||function(r){for(var n,t=1,o=arguments.length;t<o;t++)for(var e in n=arguments[t])Object.prototype.hasOwnProperty.call(n,e)&&(r[e]=n[e]);return r}).apply(this,arguments)},f=function(n,t){r(n),function(r){if(!Array.isArray(r))throw new Error("You must provide list of steps or keep steps default");if(0===r.length)throw new Error("You must provide non empty list of steps");r.forEach((function(r){if("string"!=typeof r)throw new Error("All of steps must be a string");if(0===r.trim().length)throw new Error("Steps cannot be an empty string")}))}(t);return t.reduce((function(r,t){var e,u=n+"["+t+"]";return a(a({},r),((e={})[t]=o(u),e))}),{})},c=function(r){var n,o=(n=r,function(r){var o=Object.keys(r),e=Object.keys(n);return o.reduce((function(n,o){var u;if(!e.includes(o))throw new Error("Original steps should include step with payload");if("function"!=typeof r[o])throw new Error("Payload creator must be a function");var i=r[o],f=n[o],c=t(f);return a(a({},n),((u={})[o]=c.load(i),u))}),n)});return a(a({},r),{load:o})};
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function p(r,n){if(void 0===n){var t=f(r,i);return c(t)}var o=f(r,n);return c(o)}function y(r,n){return function(t,o){return p(null===r?t:"@@"+r+"/"+t,void 0===o?n:o)}}var v=function(r,n){if("string"==typeof r){var t=u(r);if(void 0===n){var o={};return o.getCreator=t,o.getAsyncCreator=y(r,i),o}var e={};return e.getCreator=u(r),e.getAsyncCreator=y(r,n),e}var a={};return a.getCreator=u(null),a.getAsyncCreator=y(null,r),a},s=function(){return function(r){return r}},l=function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];var t=function(r){return r.type};return r.map(t)};function d(r){var n={},t={create:function(){return function(t,o){return void 0===t?r:void 0===n[o.type]?t:(0,n[o.type])(t,o.payload)}},on:function(r,o){var e=function(r){var t=r.type;n[t]="function"==typeof o?o:function(){return o}};return Array.isArray(r)?(r.forEach(e),t):(e(r),t)},reset:function(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];var u=l.apply(void 0,o);return u.forEach((function(t){n[t]=function(){return r}})),t},switchToPayload:function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];var e=l.apply(void 0,r);return e.forEach((function(r){n[r]=function(r,n){return n}})),t},getFromPayload:function(r,o){var e=function(r){var t=r.type;n[t]=function(r,n){return o(n)}};return Array.isArray(r)?(r.forEach(e),t):(e(r),t)},injectLogic:function(r){return r(t)}};return t}export{p as getAsyncCreator,e as getCreator,v as getCreatorsPack,s as payload,d as setupReducer};