MCPcopy Create free account
hub / github.com/Snapchat/Valdi / outputElementInner

Method outputElementInner

compiler/companion/src/JSXProcessor.ts:518–559  ·  view source on GitHub ↗
(
    jsxElement: JSXElement,
    attributeStatements: JSXAttributeStatements,
    output: JSXOutputState,
    transformContext: ts.TransformationContext,
  )

Source from the content-addressed store, hash-verified

516 }
517
518 private outputElementInner(
519 jsxElement: JSXElement,
520 attributeStatements: JSXAttributeStatements,
521 output: JSXOutputState,
522 transformContext: ts.TransformationContext,
523 ): ts.Statement[] {
524 const statements: ts.Statement[] = [];
525
526 if (attributeStatements.nodeRef) {
527 const transformedValueNode = this.transformNode(attributeStatements.nodeRef, output, transformContext);
528 const transformedValue = this.toExpression(transformedValueNode, transformContext);
529
530 statements.push(
531 this.createRendererCall('setAttributeRef', [transformedValue], attributeStatements.nodeRef, transformContext),
532 );
533 }
534
535 for (const attribute of attributeStatements.dynamicAttributes) {
536 if (attribute.value.kind === JSXAttributeValueKind.spread) {
537 statements.push(
538 this.createRendererCall('setAttributes', [attribute.value.value], attribute.node, transformContext),
539 );
540 } else {
541 const transformedValueNode = this.transformNode(attribute.value.value, output, transformContext);
542 const transformedValue = this.toExpression(transformedValueNode, transformContext);
543 const setAttributeCall = this.resolveSetAttributeCall(attribute.value.value, output);
544 statements.push(
545 this.createRendererCall(
546 setAttributeCall,
547 [createStringLiteral(attribute.name!, transformContext), transformedValue],
548 attribute.node,
549 transformContext,
550 ),
551 );
552 }
553 }
554
555 statements.push(...this.outputJSXChildren(jsxElement.element, jsxElement.children, output, transformContext));
556
557 statements.push(this.createRendererCall('endRender', [], undefined, transformContext));
558 return statements;
559 }
560
561 private outputComponentViewModelProperties(
562 attributeStatements: JSXAttributeStatements,

Callers 1

outputJSXElementMethod · 0.95

Calls 7

transformNodeMethod · 0.95
toExpressionMethod · 0.95
createRendererCallMethod · 0.95
outputJSXChildrenMethod · 0.95
createStringLiteralFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected