-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Refactor, change where validation occurs #1721
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Lots of follow-up work to happen here, but it can happen in follow-up PRs |
Merged
23 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'm abandoning #1718 (at least for now). The attempt gave me a sense of how we might structure the codebase slightly differently in order to make it easier to add alternative code generators. Before getting to that point, I wanted to address validation — currently, it's a bit of a convoluted and wasteful process, which could be made much easier by moving validation into the node constructors, instead of having a separate
Validator
class which duplicates a lot of stuff.The other notable changes so far in this PR are that the internal
Compiler
class becomesComponent
(since it represents the component being compiled — it makes more sense to speak of e.g.component.transitions
thancompiler.transitions
). This means that the existingComponent
class has been renamed toInlineComponent
.Also, the
src/index.ts
file has been radically simplified by moving things into the folders where they belong. My hope is that this will make it easier for people to ease their way into the codebase.