From 1fade507c019f994c00cd679f53a14ef6051330f Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 25 Jun 2024 11:59:17 +0200 Subject: [PATCH] add template only name --- src/plugin.ts | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/plugin.ts b/src/plugin.ts index 50bd5a8..12bef89 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -496,13 +496,23 @@ function insertCompiledTemplate( let expression = t.callExpression(templateFactoryIdentifier, [templateExpression]); + let assignment = target.parent; + let assignmentName: string | null = null; + if (assignment.type === 'AssignmentExpression' && assignment.left.type === 'Identifier') { + assignmentName = assignment.left.name; + } + + if (assignment.type === 'VariableDeclarator' && assignment.id.type === 'Identifier') { + assignmentName = assignment.id.name; + } + if (config.rfc931Support) { expression = t.callExpression(i.import('@ember/component', 'setComponentTemplate'), [ expression, backingClass?.node ?? t.callExpression( i.import('@ember/component/template-only', 'default', 'templateOnly'), - [] + ['@ember/component/template-only', assignmentName] ), ]); } @@ -606,6 +616,16 @@ function updateCallForm( convertStrictMode(babel, target); removeEvalAndScope(target); target.node.arguments = target.node.arguments.slice(0, 2); + let assignment = target.parent; + let assignmentName: string | null = null; + if (assignment.type === 'AssignmentExpression' && assignment.left.type === 'Identifier') { + assignmentName = assignment.left.name; + } + + if (assignment.type === 'VariableDeclarator' && assignment.id.type === 'Identifier') { + assignmentName = assignment.id.name; + } + state.recursionGuard.add(target.node); state.util.replaceWith(target, (i) => babel.types.callExpression(i.import('@ember/component', 'setComponentTemplate'), [ @@ -613,7 +633,7 @@ function updateCallForm( backingClass?.node ?? babel.types.callExpression( i.import('@ember/component/template-only', 'default', 'templateOnly'), - [] + ['@ember/component/template-only', assignmentName] ), ]) );