From af0a3df9459b206332a6c1169af0c9cd9fb0a143 Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Thu, 20 Jan 2022 20:49:55 -0600 Subject: [PATCH 1/4] feat: add renderHead util to output --- internal/printer/print-to-js.go | 3 +++ internal/printer/printer.go | 7 +++++++ internal/printer/printer_test.go | 1 + 3 files changed, 11 insertions(+) diff --git a/internal/printer/print-to-js.go b/internal/printer/print-to-js.go index c626e9cd2..751195304 100644 --- a/internal/printer/print-to-js.go +++ b/internal/printer/print-to-js.go @@ -573,6 +573,9 @@ func render1(p *printer, n *Node, opts RenderOptions) { if isComponent || isSlot { p.print(")}") } else if !isImplicit { + if n.DataAtom == atom.Head { + p.printRenderHead() + } p.print(``) } } diff --git a/internal/printer/printer.go b/internal/printer/printer.go index 729ba462e..b408077dc 100644 --- a/internal/printer/printer.go +++ b/internal/printer/printer.go @@ -35,6 +35,7 @@ var ADD_ATTRIBUTE = "$$addAttribute" var SPREAD_ATTRIBUTES = "$$spreadAttributes" var DEFINE_STYLE_VARS = "$$defineStyleVars" var DEFINE_SCRIPT_VARS = "$$defineScriptVars" +var RENDER_HEAD = "$$renderHead" var CREATE_METADATA = "$$createMetadata" var METADATA = "$$metadata" var RESULT = "$$result" @@ -57,6 +58,7 @@ func (p *printer) printInternalImports(importSpecifier string) { p.print("import {\n ") p.print(FRAGMENT + ",\n ") p.print("render as " + TEMPLATE_TAG + ",\n ") + p.print("renderHead as " + RENDER_HEAD + ",\n ") p.print("createAstro as " + CREATE_ASTRO + ",\n ") p.print("createComponent as " + CREATE_COMPONENT + ",\n ") p.print("renderComponent as " + RENDER_COMPONENT + ",\n ") @@ -86,6 +88,11 @@ func (p *printer) printCSSImports(cssLen int) { p.hasCSSImports = true } +func (p *printer) printRenderHead() { + p.addNilSourceMapping() + p.print(fmt.Sprintf("${%s(%s)}", RENDER_HEAD, RESULT)) +} + func (p *printer) printReturnOpen() { p.addNilSourceMapping() p.print("return ") diff --git a/internal/printer/printer_test.go b/internal/printer/printer_test.go index 2e4630e46..fb78312ca 100644 --- a/internal/printer/printer_test.go +++ b/internal/printer/printer_test.go @@ -16,6 +16,7 @@ import ( var INTERNAL_IMPORTS = fmt.Sprintf("import {\n %s\n} from \"%s\";\n", strings.Join([]string{ FRAGMENT, "render as " + TEMPLATE_TAG, + "renderHead as " + RENDER_HEAD, "createAstro as " + CREATE_ASTRO, "createComponent as " + CREATE_COMPONENT, "renderComponent as " + RENDER_COMPONENT, From cdb0ea0d535653e7b86e36eaf1f5483b05859957 Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Mon, 24 Jan 2022 15:46:31 -0600 Subject: [PATCH 2/4] chore: update ci to run on `next` --- .github/workflows/ci.yml | 4 ++-- .github/workflows/release.yml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 838274163..df5d01eae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: Test on: push: - branches: ['main'] + branches: ['main', 'next'] pull_request: - branches: ['main'] + branches: ['main', 'next'] # Automatically cancel in-progress actions on the same branch concurrency: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 294049676..fbed404eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - next jobs: release: From b8ba89c7f076b4d4b1c096fa529789d210a55357 Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Mon, 24 Jan 2022 16:00:06 -0600 Subject: [PATCH 3/4] test: update tests --- internal/printer/printer_test.go | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/internal/printer/printer_test.go b/internal/printer/printer_test.go index fb78312ca..4718ab98a 100644 --- a/internal/printer/printer_test.go +++ b/internal/printer/printer_test.go @@ -39,6 +39,7 @@ var STYLE_SUFFIX = "];\nfor (const STYLE of STYLES) $$result.styles.add(STYLE);\ var SCRIPT_PRELUDE = "const SCRIPTS = [\n" var SCRIPT_SUFFIX = "];\nfor (const SCRIPT of SCRIPTS) $$result.scripts.add(SCRIPT);\n" var CREATE_ASTRO_CALL = "const $$Astro = $$createAstro(import.meta.url, 'https://astro.build', '.');\nconst Astro = $$Astro;" +var RENDER_HEAD_RESULT = fmt.Sprintf("${%s(%s)}", RENDER_HEAD, RESULT) // SPECIAL TEST FIXTURES var NON_WHITESPACE_CHARS = []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_=+[];:'\",.?") @@ -178,7 +179,7 @@ import VueComponent from '../components/Vue.vue'; code: ` Hello world - + ` + RENDER_HEAD_RESULT + ` ${` + RENDER_COMPONENT + `($$result,'VueComponent',VueComponent,{})} @@ -205,7 +206,7 @@ import * as ns from '../components'; code: ` Hello world - + ` + RENDER_HEAD_RESULT + ` ${` + RENDER_COMPONENT + `($$result,'ns.Component',ns.Component,{})} @@ -225,7 +226,7 @@ import * as ns from '../components'; `, want: want{ code: ` - + ` + RENDER_HEAD_RESULT + `