@reckona/mreact-compiler 0.0.145 → 0.0.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -300,7 +300,7 @@ function collectHtmlStatements(node, outVar, escapeHelperName, escapeBatchHelper
300
300
  ];
301
301
  }
302
302
  return [
303
- `${outVar} += ${emitComponentCallExpression(node.name, emitPropsObject(node.props, node.children, escapeHelperName, escapeBatchHelperName, asyncComponentNames, dynamicAttributes, contextProviderHelperName, contextConsumerHelperName, reactNodeRenderHelperName), asyncComponentNames)};`,
303
+ `${outVar} += ${emitComponentCallExpression(node.name, emitPropsObject(node.props, node.children, escapeHelperName, escapeBatchHelperName, asyncComponentNames, dynamicAttributes, contextProviderHelperName, contextConsumerHelperName, reactNodeRenderHelperName, node.name), asyncComponentNames)};`,
304
304
  ];
305
305
  }
306
306
  if (node.kind === "async-boundary") {
@@ -757,7 +757,7 @@ function emitListParameters(node) {
757
757
  .filter((name) => name !== undefined)
758
758
  .join(", ");
759
759
  }
760
- function emitPropsObject(props, children = [], escapeHelperName, escapeBatchHelperName, asyncComponentNames, dynamicAttributes, contextProviderHelperName, contextConsumerHelperName, reactNodeRenderHelperName) {
760
+ function emitPropsObject(props, children = [], escapeHelperName, escapeBatchHelperName, asyncComponentNames, dynamicAttributes, contextProviderHelperName, contextConsumerHelperName, reactNodeRenderHelperName, componentName) {
761
761
  const entries = props.map((prop) => {
762
762
  if (prop.kind === "spread-prop") {
763
763
  return `...(${prop.code})`;
@@ -768,10 +768,14 @@ function emitPropsObject(props, children = [], escapeHelperName, escapeBatchHelp
768
768
  return `${emitPropName(prop.name)}: (${prop.code})`;
769
769
  });
770
770
  if (children.length > 0) {
771
- entries.push(`children: ${emitHtmlExpressionFromChildren(children, escapeHelperName, escapeBatchHelperName, asyncComponentNames, dynamicAttributes, contextProviderHelperName, contextConsumerHelperName, reactNodeRenderHelperName)}`);
771
+ const childrenExpression = emitHtmlExpressionFromChildren(children, escapeHelperName, escapeBatchHelperName, asyncComponentNames, dynamicAttributes, contextProviderHelperName, contextConsumerHelperName, reactNodeRenderHelperName);
772
+ entries.push(`children: ${isRouterLinkComponentName(componentName) ? `${componentName}.trustedHtml(${childrenExpression})` : childrenExpression}`);
772
773
  }
773
774
  return `{ ${entries.join(", ")} }`;
774
775
  }
776
+ function isRouterLinkComponentName(name) {
777
+ return name !== undefined && (name === "Link" || name.endsWith(".Link"));
778
+ }
775
779
  function emitCompatRuntimePropsObject(props, children = []) {
776
780
  const entries = props.map((prop) => {
777
781
  if (prop.kind === "spread-prop") {