diff --git a/.changeset/neat-camels-raise.md b/.changeset/neat-camels-raise.md
new file mode 100644
index 000000000..982b775a0
--- /dev/null
+++ b/.changeset/neat-camels-raise.md
@@ -0,0 +1,5 @@
+---
+"@astrojs/compiler": major
+---
+
+Removes `renderScript` from `TransformOptions`. It is now the default and only behavior
diff --git a/cmd/astro-wasm/astro-wasm.go b/cmd/astro-wasm/astro-wasm.go
index 494f10738..77ff82555 100644
--- a/cmd/astro-wasm/astro-wasm.go
+++ b/cmd/astro-wasm/astro-wasm.go
@@ -135,11 +135,6 @@ func makeTransformOptions(options js.Value) transform.TransformOptions {
scopedStyleStrategy = "where"
}
- renderScript := false
- if jsBool(options.Get("renderScript")) {
- renderScript = true
- }
-
return transform.TransformOptions{
Filename: filename,
NormalizedFilename: normalizedFilename,
@@ -153,7 +148,6 @@ func makeTransformOptions(options js.Value) transform.TransformOptions {
ScopedStyleStrategy: scopedStyleStrategy,
TransitionsAnimationURL: transitionsAnimationURL,
AnnotateSourceFile: annotateSourceFile,
- RenderScript: renderScript,
}
}
diff --git a/internal/printer/__printer_js__/Empty_script.snap b/internal/printer/__printer_js__/Empty_script.snap
index 14e2b9d99..3a191abb8 100755
--- a/internal/printer/__printer_js__/Empty_script.snap
+++ b/internal/printer/__printer_js__/Empty_script.snap
@@ -34,7 +34,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-return $$render``;
+return $$render`${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}`;
}, undefined, undefined);
export default $$Component;
```
diff --git a/internal/printer/__printer_js__/component_with_only_a_script.snap b/internal/printer/__printer_js__/component_with_only_a_script.snap
index 9209c351e..6f3e8c3e2 100755
--- a/internal/printer/__printer_js__/component_with_only_a_script.snap
+++ b/internal/printer/__printer_js__/component_with_only_a_script.snap
@@ -34,7 +34,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-return $$render``;
+return $$render`${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}`;
}, undefined, undefined);
export default $$Component;
```
diff --git a/internal/printer/__printer_js__/define_vars_on_script_with_StaticExpression_turned_on.snap b/internal/printer/__printer_js__/define_vars_on_script_with_StaticExpression_turned_on.snap
index 88fc47e28..a5889f920 100755
--- a/internal/printer/__printer_js__/define_vars_on_script_with_StaticExpression_turned_on.snap
+++ b/internal/printer/__printer_js__/define_vars_on_script_with_StaticExpression_turned_on.snap
@@ -34,7 +34,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-return $$render``;
+return $$render`${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}`;
}, undefined, undefined);
export default $$Component;
```
diff --git a/internal/printer/__printer_js__/maybeRenderHead_not_printed_for_hoisted_scripts.snap b/internal/printer/__printer_js__/maybeRenderHead_not_printed_for_hoisted_scripts.snap
index a640a1749..96dc905f3 100755
--- a/internal/printer/__printer_js__/maybeRenderHead_not_printed_for_hoisted_scripts.snap
+++ b/internal/printer/__printer_js__/maybeRenderHead_not_printed_for_hoisted_scripts.snap
@@ -34,7 +34,7 @@ export const $$metadata = $$createMetadata("/projects/app/src/pages/page.astro",
const $$Page = $$createComponent(($$result, $$props, $$slots) => {
-return $$render`${$$renderComponent($$result,'Layout',Layout,{})}`;
+return $$render`${$$renderScript($$result,"/projects/app/src/pages/page.astro?astro&type=script&index=0&lang.ts")}${$$renderComponent($$result,'Layout',Layout,{})}`;
}, '/projects/app/src/pages/page.astro', undefined);
export default $$Page;
```
diff --git a/internal/printer/__printer_js__/multibyte_character___script.snap b/internal/printer/__printer_js__/multibyte_character___script.snap
index a74ff64f2..1e7dc2561 100755
--- a/internal/printer/__printer_js__/multibyte_character___script.snap
+++ b/internal/printer/__printer_js__/multibyte_character___script.snap
@@ -34,7 +34,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-return $$render`${$$maybeRenderHead($$result)}ツ`;
+return $$render`${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}${$$maybeRenderHead($$result)}ツ`;
}, undefined, undefined);
export default $$Component;
```
diff --git a/internal/printer/__printer_js__/script__renderScript__true_.snap b/internal/printer/__printer_js__/script.snap
similarity index 96%
rename from internal/printer/__printer_js__/script__renderScript__true_.snap
rename to internal/printer/__printer_js__/script.snap
index e9fee4c87..d8c5ae58b 100755
--- a/internal/printer/__printer_js__/script__renderScript__true_.snap
+++ b/internal/printer/__printer_js__/script.snap
@@ -1,5 +1,5 @@
-[TestPrinter/script_(renderScript:_true) - 1]
+[TestPrinter/script - 1]
## Input
```
diff --git a/internal/printer/__printer_js__/script_before_elements.snap b/internal/printer/__printer_js__/script_before_elements.snap
index f1fbc30a3..8c6251b64 100755
--- a/internal/printer/__printer_js__/script_before_elements.snap
+++ b/internal/printer/__printer_js__/script_before_elements.snap
@@ -34,7 +34,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-return $$render`${$$maybeRenderHead($$result)}
`;
+return $$render`${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}${$$maybeRenderHead($$result)}`;
}, undefined, undefined);
export default $$Component;
```
diff --git a/internal/printer/__printer_js__/script_external__renderScript__true_.snap b/internal/printer/__printer_js__/script_external.snap
similarity index 95%
rename from internal/printer/__printer_js__/script_external__renderScript__true_.snap
rename to internal/printer/__printer_js__/script_external.snap
index 88be65653..f91ad29c6 100755
--- a/internal/printer/__printer_js__/script_external__renderScript__true_.snap
+++ b/internal/printer/__printer_js__/script_external.snap
@@ -1,5 +1,5 @@
-[TestPrinter/script_external_(renderScript:_true) - 1]
+[TestPrinter/script_external - 1]
## Input
```
diff --git a/internal/printer/__printer_js__/script_external_in_expression__renderScript__true_.snap b/internal/printer/__printer_js__/script_external_in_expression.snap
similarity index 94%
rename from internal/printer/__printer_js__/script_external_in_expression__renderScript__true_.snap
rename to internal/printer/__printer_js__/script_external_in_expression.snap
index 179e57092..dbae81039 100755
--- a/internal/printer/__printer_js__/script_external_in_expression__renderScript__true_.snap
+++ b/internal/printer/__printer_js__/script_external_in_expression.snap
@@ -1,5 +1,5 @@
-[TestPrinter/script_external_in_expression_(renderScript:_true) - 1]
+[TestPrinter/script_external_in_expression - 1]
## Input
```
diff --git a/internal/printer/__printer_js__/script_external_in_expression__renderScript__false_.snap b/internal/printer/__printer_js__/script_external_in_expression__renderScript__false_.snap
deleted file mode 100755
index 685add517..000000000
--- a/internal/printer/__printer_js__/script_external_in_expression__renderScript__false_.snap
+++ /dev/null
@@ -1,41 +0,0 @@
-
-[TestPrinter/script_external_in_expression_(renderScript:_false) - 1]
-## Input
-
-```
-{}
-```
-
-## Output
-
-```js
-import {
- Fragment,
- render as $$render,
- createAstro as $$createAstro,
- createComponent as $$createComponent,
- renderComponent as $$renderComponent,
- renderHead as $$renderHead,
- maybeRenderHead as $$maybeRenderHead,
- unescapeHTML as $$unescapeHTML,
- renderSlot as $$renderSlot,
- mergeSlots as $$mergeSlots,
- addAttribute as $$addAttribute,
- spreadAttributes as $$spreadAttributes,
- defineStyleVars as $$defineStyleVars,
- defineScriptVars as $$defineScriptVars,
- renderTransition as $$renderTransition,
- createTransitionScope as $$createTransitionScope,
- renderScript as $$renderScript,
- createMetadata as $$createMetadata
-} from "http://localhost:3000/";
-
-export const $$metadata = $$createMetadata("/src/pages/index.astro", { modules: [], hydratedComponents: [], clientOnlyComponents: [], hydrationDirectives: new Set([]), hoisted: [] });
-
-const $$Index = $$createComponent(($$result, $$props, $$slots) => {
-
-return $$render`${$$maybeRenderHead($$result)}${$$render``}`;
-}, '/src/pages/index.astro', undefined);
-export default $$Index;
-```
----
diff --git a/internal/printer/__printer_js__/script_hoist_with_frontmatter.snap b/internal/printer/__printer_js__/script_hoist_with_frontmatter.snap
index 6cbde7c78..0866b5be9 100755
--- a/internal/printer/__printer_js__/script_hoist_with_frontmatter.snap
+++ b/internal/printer/__printer_js__/script_hoist_with_frontmatter.snap
@@ -36,7 +36,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-return $$render``;
+return $$render`${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}`;
}, undefined, undefined);
export default $$Component;
```
diff --git a/internal/printer/__printer_js__/script_hoist_without_frontmatter.snap b/internal/printer/__printer_js__/script_hoist_without_frontmatter.snap
index 7abf3adc4..4e25fa4eb 100755
--- a/internal/printer/__printer_js__/script_hoist_without_frontmatter.snap
+++ b/internal/printer/__printer_js__/script_hoist_without_frontmatter.snap
@@ -36,7 +36,7 @@ export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydra
const $$Component = $$createComponent(($$result, $$props, $$slots) => {
return $$render`${$$maybeRenderHead($$result)}
-
+ ${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}
`;
}, undefined, undefined);
export default $$Component;
diff --git a/internal/printer/__printer_js__/script_in_expression__renderScript__true_.snap b/internal/printer/__printer_js__/script_in_expression.snap
similarity index 95%
rename from internal/printer/__printer_js__/script_in_expression__renderScript__true_.snap
rename to internal/printer/__printer_js__/script_in_expression.snap
index 6a96b9642..2483db758 100755
--- a/internal/printer/__printer_js__/script_in_expression__renderScript__true_.snap
+++ b/internal/printer/__printer_js__/script_in_expression.snap
@@ -1,5 +1,5 @@
-[TestPrinter/script_in_expression_(renderScript:_true) - 1]
+[TestPrinter/script_in_expression - 1]
## Input
```
diff --git a/internal/printer/__printer_js__/script_in_expression__renderScript__false_.snap b/internal/printer/__printer_js__/script_in_expression__renderScript__false_.snap
deleted file mode 100755
index 79ac613b5..000000000
--- a/internal/printer/__printer_js__/script_in_expression__renderScript__false_.snap
+++ /dev/null
@@ -1,41 +0,0 @@
-
-[TestPrinter/script_in_expression_(renderScript:_false) - 1]
-## Input
-
-```
-{false && }
-```
-
-## Output
-
-```js
-import {
- Fragment,
- render as $$render,
- createAstro as $$createAstro,
- createComponent as $$createComponent,
- renderComponent as $$renderComponent,
- renderHead as $$renderHead,
- maybeRenderHead as $$maybeRenderHead,
- unescapeHTML as $$unescapeHTML,
- renderSlot as $$renderSlot,
- mergeSlots as $$mergeSlots,
- addAttribute as $$addAttribute,
- spreadAttributes as $$spreadAttributes,
- defineStyleVars as $$defineStyleVars,
- defineScriptVars as $$defineScriptVars,
- renderTransition as $$renderTransition,
- createTransitionScope as $$createTransitionScope,
- renderScript as $$renderScript,
- createMetadata as $$createMetadata
-} from "http://localhost:3000/";
-
-export const $$metadata = $$createMetadata("/src/pages/index.astro", { modules: [], hydratedComponents: [], clientOnlyComponents: [], hydrationDirectives: new Set([]), hoisted: [] });
-
-const $$Index = $$createComponent(($$result, $$props, $$slots) => {
-
-return $$render`${$$maybeRenderHead($$result)}${false && $$render``}`;
-}, '/src/pages/index.astro', undefined);
-export default $$Index;
-```
----
diff --git a/internal/printer/__printer_js__/script_inline__renderScript__true_.snap b/internal/printer/__printer_js__/script_inline__renderScript__true_.snap
deleted file mode 100755
index b32089fc8..000000000
--- a/internal/printer/__printer_js__/script_inline__renderScript__true_.snap
+++ /dev/null
@@ -1,41 +0,0 @@
-
-[TestPrinter/script_inline_(renderScript:_true) - 1]
-## Input
-
-```
-
-```
-
-## Output
-
-```js
-import {
- Fragment,
- render as $$render,
- createAstro as $$createAstro,
- createComponent as $$createComponent,
- renderComponent as $$renderComponent,
- renderHead as $$renderHead,
- maybeRenderHead as $$maybeRenderHead,
- unescapeHTML as $$unescapeHTML,
- renderSlot as $$renderSlot,
- mergeSlots as $$mergeSlots,
- addAttribute as $$addAttribute,
- spreadAttributes as $$spreadAttributes,
- defineStyleVars as $$defineStyleVars,
- defineScriptVars as $$defineScriptVars,
- renderTransition as $$renderTransition,
- createTransitionScope as $$createTransitionScope,
- renderScript as $$renderScript,
- createMetadata as $$createMetadata
-} from "http://localhost:3000/";
-
-export const $$metadata = $$createMetadata(import.meta.url, { modules: [], hydratedComponents: [], clientOnlyComponents: [], hydrationDirectives: new Set([]), hoisted: [] });
-
-const $$Component = $$createComponent(($$result, $$props, $$slots) => {
-
-return $$render`${$$maybeRenderHead($$result)}`;
-}, undefined, undefined);
-export default $$Component;
-```
----
diff --git a/internal/printer/__printer_js__/script_mixed_handled_and_inline__renderScript__true_.snap b/internal/printer/__printer_js__/script_mixed_handled_and_inline.snap
similarity index 95%
rename from internal/printer/__printer_js__/script_mixed_handled_and_inline__renderScript__true_.snap
rename to internal/printer/__printer_js__/script_mixed_handled_and_inline.snap
index 87d237a04..3bd54dd61 100755
--- a/internal/printer/__printer_js__/script_mixed_handled_and_inline__renderScript__true_.snap
+++ b/internal/printer/__printer_js__/script_mixed_handled_and_inline.snap
@@ -1,5 +1,5 @@
-[TestPrinter/script_mixed_handled_and_inline_(renderScript:_true) - 1]
+[TestPrinter/script_mixed_handled_and_inline - 1]
## Input
```
diff --git a/internal/printer/__printer_js__/script_multiple__renderScript__true_.snap b/internal/printer/__printer_js__/script_multiple.snap
similarity index 96%
rename from internal/printer/__printer_js__/script_multiple__renderScript__true_.snap
rename to internal/printer/__printer_js__/script_multiple.snap
index 8526ea485..223ab7d29 100755
--- a/internal/printer/__printer_js__/script_multiple__renderScript__true_.snap
+++ b/internal/printer/__printer_js__/script_multiple.snap
@@ -1,5 +1,5 @@
-[TestPrinter/script_multiple_(renderScript:_true) - 1]
+[TestPrinter/script_multiple - 1]
## Input
```
diff --git a/internal/printer/__printer_js__/selectedcontent_element_in_customizable_select.snap b/internal/printer/__printer_js__/selectedcontent_element_in_customizable_select.snap
index cf64eb0ed..9890275f3 100755
--- a/internal/printer/__printer_js__/selectedcontent_element_in_customizable_select.snap
+++ b/internal/printer/__printer_js__/selectedcontent_element_in_customizable_select.snap
@@ -1,3 +1,4 @@
+
[TestPrinter/selectedcontent_element_in_customizable_select - 1]
## Input
diff --git a/internal/printer/__printer_js__/selectedcontent_self-closing_element.snap b/internal/printer/__printer_js__/selectedcontent_self-closing_element.snap
index 767835155..23deb4fe3 100755
--- a/internal/printer/__printer_js__/selectedcontent_self-closing_element.snap
+++ b/internal/printer/__printer_js__/selectedcontent_self-closing_element.snap
@@ -1,3 +1,4 @@
+
[TestPrinter/selectedcontent_self-closing_element - 1]
## Input
diff --git a/internal/printer/printer_test.go b/internal/printer/printer_test.go
index 8beb19e7c..63ed50d63 100644
--- a/internal/printer/printer_test.go
+++ b/internal/printer/printer_test.go
@@ -51,7 +51,6 @@ type testcase struct {
source string
only bool
transitions bool
- transformOptions transform.TransformOptions
filename string
}
@@ -845,70 +844,37 @@ import Widget2 from '../components/Widget2.astro';
source: ``,
},
{
- name: "script (renderScript: true)",
+ name: "script",
source: ``,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
filename: "/src/pages/index.astro",
},
{
- name: "script multiple (renderScript: true)",
+ name: "script multiple",
source: ``,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
filename: "/src/pages/index.astro",
},
{
- name: "script external (renderScript: true)",
+ name: "script external",
source: ``,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
filename: "/src/pages/index.astro",
},
{
- name: "script external in expression (renderScript: true)",
+ name: "script external in expression",
source: `{}`,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
filename: "/src/pages/index.astro",
},
{
- // maintain the original behavior, though it may be
- // unneeded as renderScript is now on by default
- name: "script external in expression (renderScript: false)",
- source: `{}`,
- filename: "/src/pages/index.astro",
- },
- {
- name: "script in expression (renderScript: true)",
+ name: "script in expression",
source: `{true && }`,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
- filename: "/src/pages/index.astro",
- },
- {
- name: "script in expression (renderScript: false)",
- source: `{false && }`,
filename: "/src/pages/index.astro",
},
{
- name: "script inline (renderScript: true)",
+ name: "script inline",
source: ``,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
},
{
- name: "script mixed handled and inline (renderScript: true)",
+ name: "script mixed handled and inline",
source: ``,
- transformOptions: transform.TransformOptions{
- RenderScript: true,
- },
filename: "/src/pages/index.astro",
},
{
@@ -2105,10 +2071,8 @@ import Analytics from '../components/Analytics.astro';
}
hash := astro.HashString(code)
- // combine from tt.transformOptions
transformOptions := transform.TransformOptions{
Scope: hash,
- RenderScript: tt.transformOptions.RenderScript,
}
transform.ExtractStyles(doc, &transformOptions)
transform.Transform(doc, transformOptions, h) // note: we want to test Transform in context here, but more advanced cases could be tested separately
diff --git a/internal/transform/transform.go b/internal/transform/transform.go
index 02dfd48e1..6714ca0f6 100644
--- a/internal/transform/transform.go
+++ b/internal/transform/transform.go
@@ -34,7 +34,6 @@ type TransformOptions struct {
ResolvePath func(string) string
PreprocessStyle interface{}
AnnotateSourceFile bool
- RenderScript bool
}
func Transform(doc *astro.Node, opts TransformOptions, h *handler.Handler) *astro.Node {
@@ -87,13 +86,6 @@ func Transform(doc *astro.Node, opts TransformOptions, h *handler.Handler) *astr
}
NormalizeSetDirectives(doc, h)
- // Important! Remove scripts from original location *after* walking the doc
- if !opts.RenderScript {
- for _, script := range doc.Scripts {
- script.Parent.RemoveChild(script)
- }
- }
-
// If we've emptied out all the nodes, this was a Fragment that only contained hoisted elements
// Add an empty FrontmatterNode to allow the empty component to be printed
if doc.FirstChild == nil {
@@ -404,8 +396,7 @@ func ExtractScript(doc *astro.Node, n *astro.Node, opts *TransformOptions, h *ha
return
}
// Ignore scripts in svg/noscript/etc
- // In expressions ignore scripts, unless `RenderScript` is true
- if !IsHoistable(n, opts.RenderScript) {
+ if !IsHoistable(n, true) {
return
}
diff --git a/internal/transform/transform_test.go b/internal/transform/transform_test.go
index 1da0cbe2b..6de58be1d 100644
--- a/internal/transform/transform_test.go
+++ b/internal/transform/transform_test.go
@@ -390,8 +390,8 @@ func TestCompactTransform(t *testing.T) {
},
{
name: "remove whitespace only",
- source: ` `,
- want: ``,
+ source: ` `,
+ want: ``,
},
{
name: "collapse surrounding whitespace",
diff --git a/internal/transform/utils.go b/internal/transform/utils.go
index 1a6bbe5e4..dc42a498f 100644
--- a/internal/transform/utils.go
+++ b/internal/transform/utils.go
@@ -47,12 +47,12 @@ func GetAttr(n *astro.Node, key string) *astro.Attribute {
return nil
}
-func IsHoistable(n *astro.Node, renderScriptEnabled bool) bool {
+func IsHoistable(n *astro.Node, renderScript bool) bool {
parent := n.Closest(func(p *astro.Node) bool {
return p.DataAtom == atom.Svg || p.DataAtom == atom.Noscript || p.DataAtom == atom.Template
})
- if renderScriptEnabled && parent != nil && parent.Expression {
+ if renderScript && parent != nil && parent.Expression {
return true
}
diff --git a/packages/compiler/src/shared/types.ts b/packages/compiler/src/shared/types.ts
index 8ac858027..4c96cc683 100644
--- a/packages/compiler/src/shared/types.ts
+++ b/packages/compiler/src/shared/types.ts
@@ -59,12 +59,6 @@ export interface TransformOptions {
attrs: Record
) => null | Promise;
annotateSourceFile?: boolean;
- /**
- * Render script tags to be processed (e.g. script tags that have no attributes or only a `src` attribute)
- * using a `renderScript` function from `internalURL`, instead of stripping the script entirely.
- * @experimental
- */
- renderScript?: boolean;
}
export type ConvertToTSXOptions = Pick<
diff --git a/packages/compiler/test/basic/trailing-spaces-ii.ts b/packages/compiler/test/basic/trailing-spaces-ii.ts
index 77b5a4993..762a81cc1 100644
--- a/packages/compiler/test/basic/trailing-spaces-ii.ts
+++ b/packages/compiler/test/basic/trailing-spaces-ii.ts
@@ -28,7 +28,10 @@ test('trailing space', () => {
result.code,
`
\${$$renderSlot($$result,$$slots["default"])}
-\``
+
+
+
+\${$$renderScript($$result,"?astro&type=script&index=0&lang.ts")}\``
);
});