@uiw-admin/plugins
Version:
68 lines (67 loc) • 4.43 kB
JavaScript
"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;