Skip to content

Commit 7a9dcaa

Browse files
committed
use babel's own scope.crawl feature
1 parent 270db5f commit 7a9dcaa

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

src/plugin.ts

+10-11
Original file line numberDiff line numberDiff line change
@@ -174,15 +174,6 @@ export function makePlugin<EnvSpecificOptions>(loadOptions: (opts: EnvSpecificOp
174174
},
175175
},
176176

177-
Identifier(path: NodePath<t.Identifier>) {
178-
if (path.node.name) {
179-
const binding = path.scope.getBinding(path.node.name);
180-
if (binding && binding.path.node !== path.parent) {
181-
binding.reference(path);
182-
}
183-
}
184-
},
185-
186177
TaggedTemplateExpression(
187178
path: NodePath<t.TaggedTemplateExpression>,
188179
state: State<EnvSpecificOptions>
@@ -545,6 +536,7 @@ function insertCompiledTemplate<EnvSpecificOptions>(
545536
);
546537
}
547538
target.replaceWith(expression);
539+
target.scope.crawl();
548540
}
549541

550542
function insertTransformedTemplate<EnvSpecificOptions>(
@@ -569,6 +561,7 @@ function insertTransformedTemplate<EnvSpecificOptions>(
569561
);
570562
let ast = preprocess(template, { ...options, mode: 'codemod' });
571563
let transformed = print(ast, { entityEncoding: 'raw' });
564+
let needsScopeCrawl = false;
572565
if (target.isCallExpression()) {
573566
(target.get('arguments.0') as NodePath<t.Node>).replaceWith(t.stringLiteral(transformed));
574567
if (!scopeLocals.isEmpty()) {
@@ -577,6 +570,7 @@ function insertTransformedTemplate<EnvSpecificOptions>(
577570
target.set('callee', precompileTemplate(state.util, target));
578571
}
579572
updateScope(babel, target, scopeLocals);
573+
needsScopeCrawl = true;
580574
}
581575

582576
if (formatOptions.rfc931Support === 'polyfilled') {
@@ -586,7 +580,7 @@ function insertTransformedTemplate<EnvSpecificOptions>(
586580
removeEvalAndScope(target);
587581
target.node.arguments = target.node.arguments.slice(0, 2);
588582
state.recursionGuard.add(target.node);
589-
target.replaceWith(
583+
target = target.replaceWith(
590584
t.callExpression(state.util.import(target, '@ember/component', 'setComponentTemplate'), [
591585
target.node,
592586
backingClass?.node ??
@@ -600,7 +594,11 @@ function insertTransformedTemplate<EnvSpecificOptions>(
600594
[]
601595
),
602596
])
603-
);
597+
)[0];
598+
needsScopeCrawl = true;
599+
}
600+
if (needsScopeCrawl) {
601+
target.scope.crawl();
604602
}
605603
} else {
606604
if (!scopeLocals.isEmpty()) {
@@ -611,6 +609,7 @@ function insertTransformedTemplate<EnvSpecificOptions>(
611609
t.callExpression(precompileTemplate(state.util, target), [t.stringLiteral(transformed)])
612610
)[0];
613611
updateScope(babel, newCall, scopeLocals);
612+
newCall.scope.crawl();
614613
} else {
615614
(target.get('quasi').get('quasis.0') as NodePath<t.TemplateElement>).replaceWith(
616615
t.templateElement({ raw: transformed })

0 commit comments

Comments
 (0)