UNPKG

@perfylee/dva-model

Version:

dva model create tool

62 lines (61 loc) 1.91 kB
"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); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createModel = exports.actionCreatorFactory = void 0; /** * Action创建工厂 * @param namespace model命名空间 */ function actionCreatorFactory(namespace) { return function (type) { var fullType = "".concat(namespace, "/").concat(type); var actionCreator = function (payload, callback) { return { type: fullType, payload: payload, callback: callback }; }; actionCreator.type = fullType; actionCreator.originType = type; return actionCreator; }; } exports.actionCreatorFactory = actionCreatorFactory; /** * Model创建方法 * @param namespace 命名空间 * @param initState 初始State * @returns */ function createModel(namespace, initState) { var model = { namespace: namespace, state: initState, reducers: {}, effects: {}, reducer: function (action, reducer) { model.reducers[action.originType] = reducer; return model; }, effect: function (action, effect) { model.effects[action.originType] = effect; return model; }, selector: function (state) { return __assign(__assign({}, state[namespace]), { loading: state.loading.effects }); } }; return model; } exports.createModel = createModel;