UNPKG

redux-act

Version:

An opinionated lib to create actions and reducers for Redux

1 lines 16.7 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ReduxAct=f()}})((function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){var n=e[i][1][r];return o(n||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=asError;function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}function asError(action){if(_typeof(action)==="object"&&action!==null){action.error=true}return action}},{}],2:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=assignAll;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function assignAll(actions,stores){if(Array.isArray(actions)){return actions.map((function(action){return action.assignTo(stores)}))}return Object.keys(actions).reduce((function(assigns,action){return _extends(assigns,_defineProperty({},action,actions[action].assignTo(stores)))}),{})}},{}],3:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _createAction=_interopRequireDefault(require("./createAction"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _default=(0,_createAction["default"])("Batch",(function(){for(var _len=arguments.length,actions=new Array(_len),_key=0;_key<_len;_key++){actions[_key]=arguments[_key]}if(actions.length===1&&Array.isArray(actions[0])){return actions[0]}return actions}));exports["default"]=_default},{"./createAction":5}],4:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=bindAll;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function bindAll(actions,stores){if(Array.isArray(actions)){return actions.map((function(action){return action.bindTo(stores)}))}return Object.keys(actions).reduce((function(binds,action){return _extends(binds,_defineProperty({},action,actions[action].bindTo(stores)))}),{})}},{}],5:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=createAction;var _types=require("./types");var id=0;var identity=function identity(arg){return arg};var normalize=function normalize(dispatchOrStore){if(dispatchOrStore&&typeof dispatchOrStore.dispatch==="function"){return dispatchOrStore.dispatch}else{return dispatchOrStore}};var normalizeAll=function normalizeAll(dispatchOrStores){if(Array.isArray(dispatchOrStores)){return dispatchOrStores.map(normalize)}else{return normalize(dispatchOrStores)}};function createAction(description,payloadReducer,metaReducer){if(typeof description==="function"){metaReducer=payloadReducer;payloadReducer=description;description=undefined}if(typeof payloadReducer!=="function"){payloadReducer=identity}if(typeof metaReducer!=="function"){metaReducer=undefined}var isSerializable=typeof description==="string"&&/^[0-9A-Z_]+$/.test(description);if(isSerializable){(0,_types.check)(description);(0,_types.add)(description)}else{++id}var type=isSerializable?description:"[".concat(id,"]").concat(description?" "+description:"");var dispatchFunctions=undefined;function makeAction(){var payload=payloadReducer.apply(void 0,arguments);if(metaReducer){return{type:type,payload:payload,error:payload instanceof Error,meta:metaReducer.apply(void 0,arguments)}}return{type:type,payload:payload,error:payload instanceof Error}}var makeAndDispatch=function makeAndDispatch(dispatchs,isError){return function(){var payloadedAction=makeAction.apply(void 0,arguments);if(!payloadedAction.error){payloadedAction.error=isError}if(Array.isArray(dispatchs)){return dispatchs.map((function(dispatch){return dispatch(payloadedAction)}))}else if(dispatchs){return dispatchs(payloadedAction)}else{return payloadedAction}}};function actionCreator(){return makeAndDispatch(dispatchFunctions,false).apply(void 0,arguments)}actionCreator.asError=function(){return makeAndDispatch(dispatchFunctions,true).apply(void 0,arguments)};actionCreator.getType=function(){return type};actionCreator.toString=function(){return type};actionCreator.raw=makeAction;actionCreator.assignTo=function(dispatchOrStores){dispatchFunctions=normalizeAll(dispatchOrStores);return actionCreator};actionCreator.assigned=function(){return!!dispatchFunctions};actionCreator.bound=function(){return false};actionCreator.dispatched=actionCreator.assigned;actionCreator.bindTo=function(dispatchOrStores){var boundActionCreator=makeAndDispatch(normalizeAll(dispatchOrStores,false));boundActionCreator.asError=makeAndDispatch(normalizeAll(dispatchOrStores,true));boundActionCreator.raw=makeAction;boundActionCreator.getType=actionCreator.getType;boundActionCreator.toString=actionCreator.toString;boundActionCreator.assignTo=function(){return boundActionCreator};boundActionCreator.bindTo=function(){return boundActionCreator};boundActionCreator.assigned=function(){return false};boundActionCreator.bound=function(){return true};boundActionCreator.dispatched=boundActionCreator.bound;return boundActionCreator};return actionCreator}},{"./types":11}],6:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=createReducer;var _batch=_interopRequireDefault(require("./batch"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function normalizeType(typeOrActionCreator){if(typeOrActionCreator&&typeOrActionCreator.getType){return typeOrActionCreator.toString()}return typeOrActionCreator}function createReducer(){var handlers=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var defaultState=arguments.length>1?arguments[1]:undefined;var opts={payload:true,fallback:null};var reducer=_extends(reduce,{has:has,on:on,off:off,options:options});function has(typeOrActionCreator){return!!handlers[normalizeType(typeOrActionCreator)]}function on(typeOrActionCreator,handler){if(Array.isArray(typeOrActionCreator)){typeOrActionCreator.forEach((function(action){on(action,handler)}))}else{handlers[normalizeType(typeOrActionCreator)]=handler}return reducer}function off(typeOrActionCreator){if(Array.isArray(typeOrActionCreator)){typeOrActionCreator.forEach(off)}else{delete handlers[normalizeType(typeOrActionCreator)]}return reducer}function options(newOpts){Object.keys(newOpts).forEach((function(name){return opts[name]=newOpts[name]}));return reducer}if(typeof handlers==="function"){var factory=handlers;handlers={};factory(on,off)}if(!has(_batch["default"])){on(_batch["default"],(function(state,payload){if(opts.payload){return payload.reduce(reduce,state)}else{return payload.payload.reduce(reduce,state)}}))}function reduce(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;if(!action||typeof action.type!=="string"){return state}if(action.type.startsWith("@@redux/")){return state}var handler=handlers[action.type]||opts.fallback;if(handler){if(opts.payload){return handler(state,action.payload,action.meta)}else{return handler(state,action)}}return state}return reducer}},{"./batch":3}],7:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=disbatch;var _batch=_interopRequireDefault(require("./batch"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function disbatch(store){for(var _len=arguments.length,actions=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){actions[_key-1]=arguments[_key]}if(actions&&actions.length>0){if(!store||typeof store!=="function"&&typeof store.dispatch!=="function"){throw new TypeError("disbatch must take either a valid Redux store or a dispatch function as first parameter")}if(typeof store.dispatch==="function"){store=store.dispatch}return store(_batch["default"].apply(void 0,actions))}else{if(!store||typeof store.dispatch!=="function"){throw new TypeError("disbatch must take a valid Redux store with a dispatch function as first parameter")}return _extends(store,{disbatch:disbatch.bind(undefined,store)})}}},{"./batch":3}],8:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"createAction",{enumerable:true,get:function get(){return _createAction["default"]}});Object.defineProperty(exports,"createReducer",{enumerable:true,get:function get(){return _createReducer["default"]}});Object.defineProperty(exports,"assignAll",{enumerable:true,get:function get(){return _assignAll["default"]}});Object.defineProperty(exports,"bindAll",{enumerable:true,get:function get(){return _bindAll["default"]}});Object.defineProperty(exports,"batch",{enumerable:true,get:function get(){return _batch["default"]}});Object.defineProperty(exports,"disbatch",{enumerable:true,get:function get(){return _disbatch["default"]}});Object.defineProperty(exports,"loggers",{enumerable:true,get:function get(){return _loggers["default"]}});Object.defineProperty(exports,"asError",{enumerable:true,get:function get(){return _asError["default"]}});exports.types=void 0;var _types=_interopRequireWildcard(require("./types"));var _createAction=_interopRequireDefault(require("./createAction"));var _createReducer=_interopRequireDefault(require("./createReducer"));var _assignAll=_interopRequireDefault(require("./assignAll"));var _bindAll=_interopRequireDefault(require("./bindAll"));var _batch=_interopRequireDefault(require("./batch"));var _disbatch=_interopRequireDefault(require("./disbatch"));var _loggers=_interopRequireDefault(require("./loggers"));var _asError=_interopRequireDefault(require("./asError"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return cache};return cache}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj)}return newObj}var types=_types;exports.types=types},{"./asError":1,"./assignAll":2,"./batch":3,"./bindAll":4,"./createAction":5,"./createReducer":6,"./disbatch":7,"./loggers":9,"./types":11}],9:[function(require,module,exports){"use strict";function _typeof(obj){"@babel/helpers - typeof";if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof(obj)}Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var reduxLogger=_interopRequireWildcard(require("./reduxLogger"));function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return cache};return cache}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj["default"]=obj;if(cache){cache.set(obj,newObj)}return newObj}var _default={reduxLogger:reduxLogger};exports["default"]=_default},{"./reduxLogger":10}],10:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.actionTransformer=actionTransformer;exports.logger=void 0;var _batch=_interopRequireDefault(require("../batch"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var batchType=_batch["default"].getType();function actionTransformer(action){if(action&&action.type===batchType){action.payload.type=batchType;return action.payload}return action}var logger={};exports.logger=logger;var _loop=function _loop(level){if(typeof console[level]==="function"){logger[level]=function levelFn(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var lastArg=args.pop();if(Array.isArray(lastArg)&&lastArg.type===batchType){lastArg.forEach((function(action){console[level].apply(console,[].concat(args,[action]))}))}else{args.push(lastArg);console[level].apply(console,args)}}}};for(var level in console){_loop(level)}},{"../batch":3}],11:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.add=add;exports.remove=remove;exports.has=has;exports.check=check;exports.all=all;exports.clear=clear;exports.enableChecking=enableChecking;exports.disableChecking=disableChecking;var types={};var config={checkExisting:true};function add(name){types[name]=true}function remove(name){types[name]=false}function has(name){return!!types[name]}function check(name){if(config.checkExisting&&has(name)){throw new TypeError("Duplicate action type: ".concat(name))}}function all(){return Object.keys(types).filter(has)}function clear(){all().forEach(remove)}function enableChecking(){config.checkExisting=true}function disableChecking(){config.checkExisting=false}},{}]},{},[8])(8)}));