MCPcopy Index your code
hub / github.com/alibaba/lowcode-engine / createNodeGenerator

Function createNodeGenerator

modules/code-generator/src/utils/nodeToJSX.ts:370–397  ·  view source on GitHub ↗
(cfg: NodeGeneratorConfig = {})

Source from the content-addressed store, hash-verified

368const handleChildren = (v: string[]) => v.join('');
369
370export function createNodeGenerator(cfg: NodeGeneratorConfig = {}): NodeGenerator<string> {
371 const generateNode = (nodeItem: IPublicTypeNodeDataType, scope: IScope): string => {
372 if (_.isArray(nodeItem)) {
373 const resList = nodeItem.map((n) => generateNode(n, scope));
374 return handleChildren(resList);
375 }
376
377 if (isNodeSchema(nodeItem)) {
378 return generateNodeSchema(nodeItem, scope, {
379 ...cfg,
380 self: generateNode,
381 });
382 }
383
384 const valueStr = generateCompositeType(nodeItem, scope, {
385 handlers: cfg.handlers,
386 nodeGenerator: generateNode,
387 });
388
389 if (isPureString(valueStr)) {
390 return encodeJsxStringNode(getStaticExprValue<string>(valueStr));
391 }
392
393 return `{${valueStr}}`;
394 };
395
396 return (nodeItem: IPublicTypeNodeDataType, scope: IScope) => unwrapJsExprQuoteInJsx(generateNode(nodeItem, scope));
397}
398
399const defaultReactGeneratorConfig: NodeGeneratorConfig = {
400 nodePlugins: [generateReactExprInJS, generateReactLoopCtrl, generateConditionReactCtrl],

Callers 2

pluginFunction · 0.90
createReactNodeGeneratorFunction · 0.85

Calls 2

unwrapJsExprQuoteInJsxFunction · 0.90
generateNodeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…