UNPKG

redux-duck

Version:

Helper function to create Redux modules using the ducks-modular-redux proposal.

77 lines (61 loc) 1.67 kB
'use strict'; var defaultAction = { type: '@@INVALID' }; function validateCases(cases) { if (cases.length === 0) { throw new Error('You should pass at least one case name when creating a reducer.'); } var validCases = cases.filter(function (caseName) { return caseName !== 'undefined'; }); if (validCases.length === 0) { throw new Error('All of your action types are undefined.'); } if (validCases.length !== Object.keys(cases).length) { throw new Error("One or more of your action types are undefined. Valid cases are: " + validCases.join(', ') + "."); } } function createDuck(name, app) { function defineType(type) { if (app) { return app + "/" + name + "/" + type; } return name + "/" + type; } function createReducer(cases, defaultState) { validateCases(Object.keys(cases)); return function reducer(state, action) { if (state === void 0) { state = defaultState; } if (action === void 0) { action = defaultAction; } for (var caseName in cases) { if (action.type === caseName) return cases[caseName](state, action); } return state; }; } function createAction(type, isError) { if (isError === void 0) { isError = false; } return function actionCreator(payload, meta) { return { type: type, payload: payload, error: isError, meta: meta }; }; } return { defineType: defineType, createReducer: createReducer, createAction: createAction }; } exports.createDuck = createDuck; //# sourceMappingURL=redux-duck.cjs.development.js.map