MCPcopy Create free account
hub / github.com/alibaba/lowcode-engine / buildComponents

Function buildComponents

packages/utils/src/build-components.ts:98–132  ·  view source on GitHub ↗
(libraryMap: LibraryMap,
  componentsMap: { [componentName: string]: IPublicTypeNpmInfo | ComponentType<any> | IPublicTypeComponentSchema },
  createComponent: (schema: IPublicTypeProjectSchema<IPublicTypeComponentSchema>) => Component | null)

Source from the content-addressed store, hash-verified

96}
97
98export function buildComponents(libraryMap: LibraryMap,
99 componentsMap: { [componentName: string]: IPublicTypeNpmInfo | ComponentType<any> | IPublicTypeComponentSchema },
100 createComponent: (schema: IPublicTypeProjectSchema<IPublicTypeComponentSchema>) => Component | null) {
101 const components: any = {};
102 Object.keys(componentsMap).forEach((componentName) => {
103 let component = componentsMap[componentName];
104 if (component && (isLowcodeProjectSchema(component) || isComponentSchema(component))) {
105 if (isComponentSchema(component)) {
106 components[componentName] = createComponent({
107 version: '',
108 componentsMap: [],
109 componentsTree: [component],
110 });
111 } else {
112 components[componentName] = createComponent(component);
113 }
114 } else if (isReactComponent(component)) {
115 if (!acceptsRef(component)) {
116 component = wrapReactClass(component as FunctionComponent);
117 }
118 components[componentName] = component;
119 } else if (isMixinComponent(component)) {
120 components[componentName] = component;
121 } else {
122 component = findComponent(libraryMap, componentName, component);
123 if (component) {
124 if (!acceptsRef(component) && isReactComponent(component)) {
125 component = wrapReactClass(component as FunctionComponent);
126 }
127 components[componentName] = component;
128 }
129 }
130 });
131 return components;
132}
133
134export interface UtilsMetadata {
135 name: string;

Callers 2

buildComponentsMethod · 0.85

Calls 9

isLowcodeProjectSchemaFunction · 0.90
isComponentSchemaFunction · 0.90
isReactComponentFunction · 0.90
acceptsRefFunction · 0.90
wrapReactClassFunction · 0.90
createComponentFunction · 0.85
isMixinComponentFunction · 0.85
findComponentFunction · 0.85
forEachMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…