react-duck
Advanced tools
Comparing version 0.4.1 to 0.4.2
@@ -55,3 +55,3 @@ "use strict"; | ||
}, [reducerDispatch]); | ||
var enhanced = React.useMemo(function () { | ||
var enhanced = React.useMemo(function enhance() { | ||
var _a; | ||
@@ -65,5 +65,7 @@ var enhancer = root.enhancer, value = __rest(root, ["enhancer"]); | ||
}, [enhanced]); | ||
var value = React.useMemo(function () { return (__assign(__assign({}, enhanced), { state: state })); }, [enhanced, state]); | ||
var value = React.useMemo(function getValue() { | ||
return __assign(__assign({}, enhanced), { state: state }); | ||
}, [enhanced, state]); | ||
return React.createElement(Context.Provider, { value: value }, children); | ||
} | ||
exports.Provider = Provider; |
@@ -17,3 +17,3 @@ "use strict"; | ||
if (prepare === void 0) { prepare = function (payload) { return ({ payload: payload }); }; } | ||
return function (payload) { | ||
return function createAction(payload) { | ||
var partialAction = prepare(payload); | ||
@@ -20,0 +20,0 @@ return __assign(__assign({}, partialAction), { type: type }); |
@@ -9,4 +9,4 @@ "use strict"; | ||
var prefix = objectName ? objectName + "." : ""; | ||
return function unimplemented(methodName) { | ||
return function () { | ||
return function createUnimplemented(methodName) { | ||
return function unimplemented() { | ||
throw new Error("Unimplemented method: " + prefix + methodName); | ||
@@ -13,0 +13,0 @@ }; |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
var __values = (this && this.__values) || function(o) { | ||
@@ -37,63 +48,32 @@ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
} | ||
function reverseMap(map) { | ||
var e_1, _a; | ||
if (!map) | ||
return {}; | ||
var reversedMap = {}; | ||
try { | ||
for (var _b = __values(getEntries_1.getEntries(map)), _c = _b.next(); !_c.done; _c = _b.next()) { | ||
var _d = __read(_c.value, 2), mappedActionType = _d[0], actionType = _d[1]; | ||
if (!reversedMap[actionType]) { | ||
reversedMap[actionType] = new Set(); | ||
} | ||
reversedMap[actionType].add(mappedActionType); | ||
} | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (_c && !_c.done && (_a = _b.return)) _a.call(_b); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
return reversedMap; | ||
} | ||
function createDuck(_a) { | ||
var e_2, _b, e_3, _c; | ||
var e_1, _b; | ||
var name = _a.name, initialState = _a.initialState, reducers = _a.reducers, selectors = _a.selectors, actionMapping = _a.actionMapping; | ||
var mappedActionTypes = reverseMap(actionMapping); | ||
var mappedActionTypes = __assign({}, actionMapping); | ||
var actions = {}; | ||
var namedspacedReducers = {}; | ||
try { | ||
for (var _d = __values(getEntries_1.getEntries(reducers)), _e = _d.next(); !_e.done; _e = _d.next()) { | ||
var _f = __read(_e.value, 2), actionType = _f[0], reducer_1 = _f[1]; | ||
for (var _c = __values(getEntries_1.getEntries(reducers)), _d = _c.next(); !_d.done; _d = _c.next()) { | ||
var _e = __read(_d.value, 1), actionType = _e[0]; | ||
var namespacedActionType = getNS(name, actionType); | ||
actions[actionType] = createAction_1.createAction(namespacedActionType); | ||
var mappedReducer = reducer_1; | ||
namedspacedReducers[namespacedActionType] = mappedReducer; | ||
if (mappedActionTypes[actionType]) { | ||
try { | ||
for (var _g = (e_3 = void 0, __values(mappedActionTypes[actionType])), _h = _g.next(); !_h.done; _h = _g.next()) { | ||
var mappedActionType = _h.value; | ||
namedspacedReducers[mappedActionType] = mappedReducer; | ||
} | ||
} | ||
catch (e_3_1) { e_3 = { error: e_3_1 }; } | ||
finally { | ||
try { | ||
if (_h && !_h.done && (_c = _g.return)) _c.call(_g); | ||
} | ||
finally { if (e_3) throw e_3.error; } | ||
} | ||
} | ||
mappedActionTypes[namespacedActionType] = actionType; | ||
} | ||
} | ||
catch (e_2_1) { e_2 = { error: e_2_1 }; } | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (_e && !_e.done && (_b = _d.return)) _b.call(_d); | ||
if (_d && !_d.done && (_b = _c.return)) _b.call(_c); | ||
} | ||
finally { if (e_2) throw e_2.error; } | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
var reducer = createReducer_1.createReducer(initialState, namedspacedReducers); | ||
var actionReducer = createReducer_1.createReducer(initialState, reducers); | ||
var isMappedActionType = function (a) { | ||
return a !== undefined && | ||
Object.prototype.hasOwnProperty.call(mappedActionTypes, a.type); | ||
}; | ||
function reducer(state, action) { | ||
return actionReducer(state, __assign(__assign({}, action), { type: isMappedActionType(action) | ||
? mappedActionTypes[action.type] | ||
: action.type })); | ||
} | ||
return { | ||
@@ -100,0 +80,0 @@ actions: actions, |
@@ -1,1 +0,1 @@ | ||
export declare function createReducer<S, P, T extends string, K extends ActionReducerMapping<S, T, P>>(initialState: S, actionTypeToReducer: K, defaultReducer?: Reducer<S, T, P>): Reducer<S, T, P>; | ||
export declare function createReducer<S, P, T extends string>(initialState: S, actionTypeToReducer: ActionReducerMapping<S, T, P>, defaultReducer?: Reducer<S, T, P>): Reducer<S, T, P>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createReducer = void 0; | ||
function createReducer(initialState, actionTypeToReducer, defaultReducer) { | ||
function createReducer(initialState, actionTypeToReducer /* Action types to reducer mapping */, defaultReducer) { | ||
var isReducerActionType = function (a) { | ||
return Boolean(Object.prototype.hasOwnProperty.call(actionTypeToReducer, a.type)); | ||
return a !== undefined && | ||
Object.prototype.hasOwnProperty.call(actionTypeToReducer, a.type); | ||
}; | ||
return function (state, action) { | ||
return function actionReducer(state, action) { | ||
var _a; | ||
if (state === void 0) { state = initialState; } | ||
if (action === undefined || !isReducerActionType(action)) { | ||
if (!isReducerActionType(action)) { | ||
return (_a = defaultReducer === null || defaultReducer === void 0 ? void 0 : defaultReducer(state, action)) !== null && _a !== void 0 ? _a : state; | ||
@@ -13,0 +14,0 @@ } |
@@ -25,5 +25,5 @@ "use strict"; | ||
var React = require("react"); | ||
var Context_1 = require("../components/Context"); | ||
var __1 = require(".."); | ||
function useDispatch(actionCreator, Context) { | ||
var dispatch = React.useContext(Context !== null && Context !== void 0 ? Context : Context_1.GlobalContext).dispatch; | ||
var dispatch = React.useContext(Context !== null && Context !== void 0 ? Context : __1.GlobalContext).dispatch; | ||
return React.useCallback(function dispatchAction() { | ||
@@ -30,0 +30,0 @@ var args = []; |
@@ -7,3 +7,3 @@ "use strict"; | ||
var ref = React.useRef(value); | ||
React.useEffect(function () { | ||
React.useEffect(function updateRef() { | ||
ref.current = value; | ||
@@ -10,0 +10,0 @@ }, [value]); |
@@ -5,7 +5,9 @@ "use strict"; | ||
var React = require("react"); | ||
var Context_1 = require("../components/Context"); | ||
var __1 = require(".."); | ||
function useSelector(selector, Context) { | ||
var state = React.useContext(Context !== null && Context !== void 0 ? Context : Context_1.GlobalContext).state; | ||
return React.useMemo(function () { return selector === null || selector === void 0 ? void 0 : selector(state); }, [selector, state]); | ||
var state = React.useContext(Context !== null && Context !== void 0 ? Context : __1.GlobalContext).state; | ||
return React.useMemo(function select() { | ||
return selector === null || selector === void 0 ? void 0 : selector(state); | ||
}, [selector, state]); | ||
} | ||
exports.useSelector = useSelector; |
@@ -43,15 +43,14 @@ "use strict"; | ||
return function enhancer(context) { | ||
var dispatchStub = function () { | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
function dispatchStub() { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
} | ||
throw new Error("Dispatching while constructing your middleware is not allowed. " + | ||
"Other middleware would not be applied to this dispatch."); | ||
}; | ||
} | ||
var middlewareAPI = { | ||
getState: context.getState, | ||
dispatch: function (action) { | ||
var args = []; | ||
for (var _i = 1; _i < arguments.length; _i++) { | ||
args[_i - 1] = arguments[_i]; | ||
} | ||
return dispatchStub.apply(void 0, __spread([action], args)); | ||
}, | ||
dispatch: dispatchStub, | ||
}; | ||
@@ -58,0 +57,0 @@ var chain = middlewares.map(function (middleware) { |
@@ -25,3 +25,3 @@ "use strict"; | ||
if (state === void 0) { state = initialState; } | ||
return reducers.reduce(function (acc, _a) { | ||
return reducers.reduce(function reduce(acc, _a) { | ||
var _b = __read(_a, 2), name = _b[0], reducer = _b[1]; | ||
@@ -28,0 +28,0 @@ acc[name] = reducer(state[name], action); |
@@ -1,1 +0,1 @@ | ||
export declare function getEntries<A extends string, B>(o?: Record<A, B>): [A, B][]; | ||
export declare function getEntries<A extends string, B>(o: Record<A, B>): [A, B][]; |
@@ -5,4 +5,4 @@ "use strict"; | ||
function getEntries(o) { | ||
return (o ? Object.entries(o) : []); | ||
return Object.entries(o); | ||
} | ||
exports.getEntries = getEntries; |
{ | ||
"name": "react-duck", | ||
"version": "0.4.1", | ||
"version": "0.4.2", | ||
"description": "🦆 React ducks without Redux", | ||
@@ -112,2 +112,3 @@ "author": "iamogbz", | ||
"eslint-plugin-import": "^2.22.0", | ||
"eslint-plugin-jest": "^24.0.1", | ||
"eslint-plugin-jsx-a11y": "^6.3.1", | ||
@@ -114,0 +115,0 @@ "eslint-plugin-prettier": "^3.1.4", |
@@ -29,4 +29,5 @@ type Action< | ||
T extends string = string, | ||
P = unknown | ||
> = Record<T, Reducer<S, T, P>>; | ||
P = unknown, | ||
C extends string = T | ||
> = Record<C, Reducer<S, T, P>>; | ||
@@ -33,0 +34,0 @@ type Selector< |
42523
46
769