Skip to content

Commit 73a2b69

Browse files
authored
Use an IIFE to scope define:vars scripts (#599)
* Use an IIFE to scope define:vars scripts * adding a changeset
1 parent a27d147 commit 73a2b69

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

.changeset/seven-nails-compete.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@astrojs/compiler': patch
3+
---
4+
5+
Use an IIFE for define:vars scripts

internal/printer/printer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ func (p *printer) printDefineVarsOpen(n *astro.Node) {
174174
}
175175
if n.DataAtom == atom.Script {
176176
if !isTypeModuleScript(n) {
177-
p.print("{")
177+
p.print("(function(){")
178178
}
179179
}
180180
for _, attr := range n.Attr {
@@ -211,7 +211,7 @@ func (p *printer) printDefineVarsClose(n *astro.Node) {
211211
return
212212
}
213213
if !isTypeModuleScript(n) {
214-
p.print("}")
214+
p.print("})();")
215215
}
216216
}
217217

internal/printer/printer_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,15 +1148,15 @@ import Widget2 from '../components/Widget2.astro';`},
11481148
staticExtraction: true,
11491149
source: `<script define:vars={{ value: 0 }}>console.log(value);</script>`,
11501150
want: want{
1151-
code: `<script>{${$$defineScriptVars({ value: 0 })}console.log(value);}</script>`,
1151+
code: `<script>(function(){${$$defineScriptVars({ value: 0 })}console.log(value);})();</script>`,
11521152
},
11531153
},
11541154
{
11551155
name: "script define:vars II",
11561156
staticExtraction: true,
11571157
source: `<script define:vars={{ "dash-case": true }}>console.log(dashCase);</script>`,
11581158
want: want{
1159-
code: `<script>{${$$defineScriptVars({ "dash-case": true })}console.log(dashCase);}</script>`,
1159+
code: `<script>(function(){${$$defineScriptVars({ "dash-case": true })}console.log(dashCase);})();</script>`,
11601160
},
11611161
},
11621162
{
@@ -2257,7 +2257,7 @@ const items = ["Dog", "Cat", "Platipus"];
22572257
source: `<script is:inline>var one = 'one';</script><script>var two = 'two';</script><script define:vars={{foo:'bar'}}>var three = foo;</script><script is:inline define:vars={{foo:'bar'}}>var four = foo;</script>`,
22582258
staticExtraction: true,
22592259
want: want{
2260-
code: `<script>var one = 'one';</script>${$$maybeRenderHead($$result)}<script>{${$$defineScriptVars({foo:'bar'})}var three = foo;}</script><script>{${$$defineScriptVars({foo:'bar'})}var four = foo;}</script>`,
2260+
code: `<script>var one = 'one';</script>${$$maybeRenderHead($$result)}<script>(function(){${$$defineScriptVars({foo:'bar'})}var three = foo;})();</script><script>(function(){${$$defineScriptVars({foo:'bar'})}var four = foo;})();</script>`,
22612261
metadata: metadata{
22622262
hoisted: []string{"{ type: 'inline', value: `var two = 'two';` }"},
22632263
},

0 commit comments

Comments
 (0)