fix: componentsMap 中加入低代码组件信息

This commit is contained in:
力皓 2021-04-13 20:54:41 +08:00
parent dcca86780f
commit b7c1183460
2 changed files with 19 additions and 11 deletions

View File

@ -21,11 +21,12 @@ export type GetDataType<T, NodeType> = T extends undefined
export interface ComponentMap { export interface ComponentMap {
componentName: string; componentName: string;
package: string; package?: string;
version?: string; version?: string;
destructuring?: boolean; destructuring?: boolean;
exportName?: string; exportName?: string;
subName?: string; subName?: string;
devMode?: 'lowcode' | 'procode';
} }
export class DocumentModel { export class DocumentModel {
@ -637,26 +638,33 @@ export class DocumentModel {
getComponentsMap(extraComps?: string[]) { getComponentsMap(extraComps?: string[]) {
const componentsMap: ComponentMap[] = []; const componentsMap: ComponentMap[] = [];
// 组件去重 // 组件去重
const map: any = {}; const exsitingMap: { [componentName: string]: boolean } = {};
for (const node of this._nodesMap.values()) { for (const node of this._nodesMap.values()) {
const { componentName } = node || {}; const { componentName } = node || {};
if (!map[componentName] && node.componentMeta?.npm?.package) { if (!exsitingMap[componentName]) {
map[componentName] = true; exsitingMap[componentName] = true;
componentsMap.push({ if (node.componentMeta?.npm?.package) {
...node.componentMeta.npm, componentsMap.push({
componentName, ...node.componentMeta.npm,
}); componentName,
});
} else {
componentsMap.push({
devMode: 'lowcode',
componentName,
});
}
} }
} }
// 合并外界传入的自定义渲染的组件 // 合并外界传入的自定义渲染的组件
if (Array.isArray(extraComps)) { if (Array.isArray(extraComps)) {
extraComps.forEach(c => { extraComps.forEach(c => {
if (c && !map[c]) { if (c && !exsitingMap[c]) {
const m = this.getComponentMeta(c); const m = this.getComponentMeta(c);
if (m && m.npm?.package) { if (m && m.npm?.package) {
componentsMap.push({ componentsMap.push({
...m?.npm,
componentName: c, componentName: c,
package: m.npm?.package,
}); });
} }
} }