ewm
Version:
小程序原生插件
42 lines • 1.59 kB
JavaScript
import { checkHandle, checkPropertiesValueType, checkPropertyField, deleteInheritAndMainMethods, EmptyFunc, eventsHandle, fieldHandle, initResponseData, IsDevelopment, isEmptyObj, IsTypescript, methodsCalledByMainHandle, } from "./_api";
export function CreateSubComponent() {
const _createSubComponent = function (options) {
fieldHandle(options, [
initResponseData,
deleteInheritAndMainMethods,
eventsHandle,
methodsCalledByMainHandle,
]);
if (isEmptyObj(options)) {
return "";
}
if (IsDevelopment) {
checkHandle(options, [
checkPropertyField,
!IsTypescript ? checkPropertiesValueType : EmptyFunc,
]);
}
options.definitionFilter = function (mainDef) {
mergeOptions(mainDef, options);
};
return Behavior(options);
};
return _createSubComponent;
}
function mergeOptions(mainDef, options) {
for (const key in options) {
if (key === "data" || key === "properties" || key === "watch" || key === "computed") {
const main = mainDef[key] || (mainDef[key] = {});
for (const k in options[key]) {
if (k in main) {
console.warn(`${k}与主配置冲突被忽略`);
}
else {
main[k] = options[key][k];
}
}
delete options[key];
}
}
}
//# sourceMappingURL=CreateSubComponent.js.map