UNPKG

@uiw-admin/plugins

Version:
68 lines (67 loc) 4.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.createTemp = exports.createModelsTempStr = void 0; var _path = _interopRequireDefault(require("path")); // 模板 var _default = function _default(str, isTS) { if (!isTS) { return "\nimport {\n init,\n Models,\n Model,\n RematchRootState,\n RematchDispatch,\n createModel,\n} from '@rematch/core';\nimport loading from '@rematch/loading';\n".concat(str.importStr, "\n").concat(!str.lazyLoad ? str.createModelsStr : '', "\nexport const models = {\n ").concat(!str.lazyLoad ? str.models : '', "\n}\n\nexport const store = init({\n models,\n plugins: [loading()],\n});\n\nexport const { dispatch, addModel } = store;\n\n"); } return "\n// @ts-ignore\nimport {\n init,\n Models,\n Model,\n RematchRootState,\n RematchDispatch,\n createModel,\n} from '@rematch/core';\nimport loading, { ExtraModelsFromLoading } from '@rematch/loading';\n".concat(str.importStr, "\n").concat(!str.lazyLoad ? str.createModelsStr : '', "\nexport const models = {\n ").concat(!str.lazyLoad ? str.models : '', "\n}\nexport interface RootModel extends Models<RootModel> {\n ").concat(str.typeModels, "\n}\nexport type FullModel = ExtraModelsFromLoading<RootModel>\n\nexport const store = init<RootModel, FullModel>({\n models,\n plugins: [loading()],\n});\n\nexport const { dispatch, addModel } = store;\nexport type Store = typeof store;\nexport type AddModel = typeof addModel;\nexport type Dispatch = RematchDispatch<RootModel>;\nexport type RootState = RematchRootState<RootModel, FullModel>;\nexport type ModelDefault<T = any> = Model<RootModel, T>;\n\n"); }; exports["default"] = _default; var createModelsTempStr = function createModelsTempStr(modelArr, lazyLoad, isTS) { var importStr = ''; var lazyModelsStr = ''; var typeModels = ''; var addModelStr = ''; var createModelsStr = ''; var models = ''; var Reg = new RegExp("^".concat(_path["default"].resolve(process.cwd(), 'src/models/'))); modelArr.forEach(function (item, index) { var paths = item.path, filename = item.filename, modelName = item.modelName, isCreateModel = item.isCreateModel; var pathUrls = "".concat(paths).replace(/\\/g, '/').replace(/\.(js|ts)/, ''); var names = modelName || filename; importStr = importStr + "import ".concat(names, "Model").concat(index, " from \"").concat(pathUrls, "\";\n"); if (lazyLoad && Reg.test(item.path) || !lazyLoad) { lazyModelsStr = lazyModelsStr + "const ".concat(names, "Model").concat(index, " = (await import(\"").concat(pathUrls, "\")).default;\n"); if (isCreateModel) { addModelStr = addModelStr + "store.addModel({ name: \"".concat(names, "\", ...").concat(names, "Model").concat(index, " });\n"); createModelsStr = createModelsStr + "const ".concat(names, "Model = ").concat(names, "Model").concat(index, ";\n"); } else { if (isTS) { addModelStr = addModelStr + "store.addModel({ name: \"".concat(names, "\", ...createModel<RootModel>()(").concat(names, "Model").concat(index, ") });\n"); createModelsStr = createModelsStr + "const ".concat(names, "Model = createModel<RootModel>()(").concat(names, "Model").concat(index, ");\n"); } else { addModelStr = addModelStr + "store.addModel({ name: \"".concat(names, "\", ...createModel()(").concat(names, "Model").concat(index, ") });\n"); createModelsStr = createModelsStr + "const ".concat(names, "Model = createModel()(").concat(names, "Model").concat(index, ");\n"); } } models = models + "".concat(names, ":").concat(names, "Model,\n"); } if (isTS) { typeModels = typeModels + " ".concat(names, ":typeof ").concat(names, "Model").concat(index, ",\n"); } }); return { importStr: importStr, lazyModelsStr: lazyModelsStr, typeModels: typeModels, addModelStr: addModelStr, models: models, lazyLoad: lazyLoad, createModelsStr: createModelsStr }; }; exports.createModelsTempStr = createModelsTempStr; var createTemp = function createTemp(pathUrl, filename) { var path = "".concat(pathUrl).replace(/\\/g, '/'); return "createModels(require(\"".concat(path, "\").default,\"").concat(filename, "\");\n"); }; exports.createTemp = createTemp;