dareway-rui
Version:
79 lines (62 loc) • 2.93 kB
JavaScript
'use strict';
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = loadCustomViewModel;
var _ES6ModuleLoader = _interopRequireDefault(require('./ES6ModuleLoader'));
var _CustomizationCache = _interopRequireDefault(require('./../../customization/CustomizationCache'));
var _buildVMSingleton = require('./buildVMSingleton');
var _buildVMFactory = require('./buildVMFactory');
var _AppManager = require('./AppManager');
/////////////////////////////////////////////////////////////////////////////
// Dependency
//
/////////////////////////////////////////////////////////////////////////////
// Util
//
var uuid = 1;
var genUuid = function genUuid() {
return uuid++;
};
function loadCustomViewModel(biz, vmPath) {
function handler(es6Module) {
var connectedView = null;
var connectedModel = null;
var defaultExport = es6Module.default;
if (defaultExport instanceof _buildVMFactory.VMFactory) {
var _defaultExport$build = defaultExport.build(''.concat(genUuid())),
_connectedView = _defaultExport$build.connectedView,
_connectedModel = _defaultExport$build.connectedModel;
(0, _AppManager.registerModel)(_connectedModel);
return {
connectedView: _connectedView,
connectedModel: _connectedModel
};
} else if (defaultExport instanceof _buildVMSingleton.VMSingleton) {
var _defaultExport$getIns = defaultExport.getInstance(),
_connectedView2 = _defaultExport$getIns.connectedView,
_connectedModel2 = _defaultExport$getIns.connectedModel;
(0, _AppManager.registerModel)(_connectedModel2);
return {
connectedView: _connectedView2,
connectedModel: _connectedModel2
};
} else {
throw new Error(
'\u51FD\u6570\u5B9A\u4E49\uFF1AloadCustomViewModel(biz, vmPath)\n\u51FD\u6570\u8C03\u7528\uFF1AloadCustomViewModel('
.concat(biz, ', ')
.concat(
vmPath,
')\n\u5F02\u5E38\u4FE1\u606F\uFF1A\u89E3\u6790\u5F97\u5230\u7684\u6A21\u5757\uFF0C\u4E0D\u662F\u7531 RUICore.buildVMFactory \u6216 RUI.buildVMSingleton \u5BFC\u51FA\n\u8BF7\u68C0\u67E5!'
)
);
}
} // 客户化后的 vmPath
var customVmPath = _CustomizationCache.default.getCustomization(biz, vmPath); // 不存在客户化信息,加载标准件
if (!customVmPath) {
return _ES6ModuleLoader.default.load(vmPath).then(handler);
} // 存在客户化信息,加载客户化件
return _ES6ModuleLoader.default.load(customVmPath).then(handler);
}
//@ sourceMappingURL=loadCustomViewModel.js.map