minh-custom-hooks-release
Version:
Đây là custom hooks được viết bởi hoanggminh2702, bao gồm:
60 lines • 2.46 kB
JavaScript
;
/* eslint-disable no-unsafe-optional-chaining */
/* eslint-disable prefer-const */
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = actionCreators;
// type ConvertNeverArgsToEmptyArgs<TArgs extends any[] | never> = TArgs extends never ? [] : TArgs
function actionCreators(prefix, initState, actions) {
var generateActions = {};
Object.keys(actions).forEach(function (key) {
generateActions[key] = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return {
type: "".concat(prefix, "/").concat(key),
payload: __spreadArray([], args, true),
};
};
});
var reducer = function (state, action) {
var _a, _b;
if (state === void 0) { state = initState; }
var reducerActions = __assign({}, actions);
if (typeof (reducerActions === null || reducerActions === void 0 ? void 0 : reducerActions[(_a = action.type) === null || _a === void 0 ? void 0 : _a.replace("".concat(prefix, "/"), '')]) === 'function') {
return reducerActions[(_b = action.type) === null || _b === void 0 ? void 0 : _b.replace("".concat(prefix, "/"), '')].apply(reducerActions, __spreadArray([state], action === null || action === void 0 ? void 0 : action.payload, false));
}
return state;
};
return {
reducer: reducer,
generateActions: generateActions,
};
}
// const a = actionCreators("test", {test: 3}, {
// setAuth(state) {
// return state
// }
// })
//# sourceMappingURL=actionCreators.js.map