Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Source to source mode #9

Merged
merged 13 commits into from
Oct 31, 2022
Merged

Source to source mode #9

merged 13 commits into from
Oct 31, 2022

Conversation

ef4
Copy link
Contributor

@ef4 ef4 commented Aug 3, 2022

This adds support for running AST transforms without doing the full compilation, in the same way that Embroider does in stage1.

This would replace the need for that, and by unifying the implementations means that we'll get consistent handling of features like lexical scope even as we introduce ast transforms that can manipulate JS scope.

This also makes the AST transforms a first-class option. Classically, implementations have always wrapped ember's precompile function in a closure that provides the transform plugins, but there's no need to do that.

This is a breaking change because I changed the options format, because instead of only needing the ember template compiler's precompile function we now use the whole ember template compiler module.

  • finish remaining it.todo tests
  • test in embroider and resolve the TODO comment about moduleName

ef4 added 6 commits August 2, 2022 09:19
By default, consumers will get either the node or browser implementation automatically based on their environment.

Since these implementations support slightly different options, consumers that want to be portable themselves may want to pick one implementation (probably the browser one, since it is the more portable) and stick to it, regardless of their own environment.

This change enables that by allowing direct imports of `babel-plugin-ember-template-compilation/browser` and `babel-plugin-ember-template-compilation/node`, both of which bypass the automatic environment switching.
allow direct access to browser and node implementations
Not just the precompile function.
@ef4 ef4 added the breaking label Aug 3, 2022
@ef4
Copy link
Contributor Author

ef4 commented Aug 4, 2022

Tagged and published v2.0.0-alpha.0 off this branch.

@ef4
Copy link
Contributor Author

ef4 commented Oct 31, 2022

I'm going to merge this and the other pending work so that we can better coordinate what will be babel-plugin-ember-template-compilation 2.0.0-beta series.

@ef4 ef4 merged commit d846415 into jsutils Oct 31, 2022
@delete-merged-branch delete-merged-branch bot deleted the source-to-source branch October 31, 2022 20:18
@ef4 ef4 added the enhancement New feature or request label Nov 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant