UNPKG

@lcap/builder

Version:
66 lines (65 loc) 2.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.processComponentConfigExtends = processComponentConfigExtends; const lodash_1 = require("lodash"); const shared_1 = require("../../shared"); const logger_1 = __importDefault(require("../../utils/logger")); const utils_1 = require("../../utils"); exports.default = shared_1.genNaslComponent; function processComponentConfigExtends(components, lcapUIComponents = []) { components.map((c) => { const arr = [c]; if (Array.isArray(c.children)) { arr.push(...c.children); } return arr; }).flat().filter((c) => Array.isArray(c.extends) && c.extends.length > 0).forEach((component) => { const extendList = (component.extends || []).map((exd) => { if (typeof exd === 'string') { return { name: exd, }; } return exd; }); extendList.forEach((exd) => { const { name, excludes = [] } = exd; if (!name) { return; } const exdComp = (0, utils_1.getComponentConfigByName)(name, [...components, ...lcapUIComponents]); if (!exdComp || (exdComp.extends && exdComp.extends.length > 0)) { logger_1.default.warn(`找不到 ${component.name} 继承的组件 ${name} 的配置`); return; } [ 'methods', 'slots', 'readableProps', 'props', 'events', ].forEach((key) => { if (!component[key]) { component[key] = []; } (exdComp[key] || []).forEach((it) => { const i = component[key].findIndex((c) => c.name === it.name); let attrName = it.name; if (key === 'slots') { attrName = `slot${(0, lodash_1.upperFirst)(attrName)}`; } else if (key === 'events') { attrName = `on${(0, lodash_1.upperFirst)(attrName)}`; } if (i !== -1 || excludes.includes(attrName)) { return; } component[key].push(it); }); }); }); }); }