summaryrefslogtreecommitdiff
path: root/packages/astro/src/compiler/transform/index.ts
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2021-05-26 13:30:22 -0500
committerGravatar GitHub <noreply@github.com> 2021-05-26 13:30:22 -0500
commit643c880f280c3f571a022b6f4d40b6d5a0e911b5 (patch)
tree787fcf4e12d20166ee1bd8c18ba38d6e12c499e6 /packages/astro/src/compiler/transform/index.ts
parent31e52c2e4c138fe6608f60e8f43647c664b31d6a (diff)
downloadastro-643c880f280c3f571a022b6f4d40b6d5a0e911b5.tar.gz
astro-643c880f280c3f571a022b6f4d40b6d5a0e911b5.tar.zst
astro-643c880f280c3f571a022b6f4d40b6d5a0e911b5.zip
Renderer plugins (#231)
* refactor: pluggable renderers * refactor: cache renderer per component * docs: update comments on snowpack plugin `transform` method * docs: add comments to renderer plugins * refactor: convert components to Map * fix: pass children through to astro __render * refactor: move Components/ComponentInfo to shared types * refactor: remove `gatherRuntimes` step, just scan output for imports * refactor: update isComponentTag logic * chore: move dependencies to renderers * fix: cross-platform transform injection * feat: defer renderer to react, fallback to preact * fix: use double quotes in generated script * test: fix failing children tests * test: add workspaceRoot to all tests * fix: pass props to renderer check * chore: add test:core script back for convenience * chore: remove unused external * chore: rename renderers * chore: add astring, estree-util-value-to-estree * chore: render-component => __astro_component * refactor: split hydrate logic to own file * refactor: use `astro-fragment` rather than `div` * chore: remove unused hooks * chore: delete unused file * chore: add changesets * fix: Astro renderer should be async * fix: remove <astro-fragment> for static content * test: fix failing test * chore: normalize config interface * feat: allow renderers to inject a snowpackPlugin * fix: resolve import URL before using dynamic import * refactor: update renderers to use separate /server entrypoint * refactor: update server renderer interface * fix: get renderers working again * test: debug failing test * test: better debug * test: better debug * test: remove debug * fix: support esm and cjs packages via "resolve" * refactor: split hydrate functions into individual files * fix: dependency resolution relative to projectRoot * fix: @snowpack/plugin-postcss needs to be hoisted * fix: do not test prettier-plugin-astro as it's not ready for primetime
Diffstat (limited to 'packages/astro/src/compiler/transform/index.ts')
-rw-r--r--packages/astro/src/compiler/transform/index.ts3
1 files changed, 2 insertions, 1 deletions
diff --git a/packages/astro/src/compiler/transform/index.ts b/packages/astro/src/compiler/transform/index.ts
index 27f5a3212..d622846d9 100644
--- a/packages/astro/src/compiler/transform/index.ts
+++ b/packages/astro/src/compiler/transform/index.ts
@@ -8,6 +8,7 @@ import transformStyles from './styles.js';
import transformDoctype from './doctype.js';
import transformModuleScripts from './module-scripts.js';
import transformCodeBlocks from './prism.js';
+import transformHydration from './hydration.js';
interface VisitorCollection {
enter: Map<string, VisitorFn[]>;
@@ -84,7 +85,7 @@ export async function transform(ast: Ast, opts: TransformOptions) {
const cssVisitors = createVisitorCollection();
const finalizers: Array<() => Promise<void>> = [];
- const optimizers = [transformStyles(opts), transformDoctype(opts), transformModuleScripts(opts), transformCodeBlocks(ast.module)];
+ const optimizers = [transformHydration(), transformStyles(opts), transformDoctype(opts), transformModuleScripts(opts), transformCodeBlocks(ast.module)];
for (const optimizer of optimizers) {
collectVisitors(optimizer, htmlVisitors, cssVisitors, finalizers);