refactor!: better internal type safety for hooks #2995
Merged
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.
When combined with #2993 this makes writing forge configs in typescript a truly wonderful experience. Type hinting for each hook, arg names / types, etc.
If you want me to explain the generics stuff in
shared-types
that makes it all work you're gonna have to buy me a drink first 😅 .This also changes the internal signature of
Plugin.getHook(name)
toPlugin.getHooks().name
. This should be considered a breaking change I guess but I've taken the opportunity to update all our built-in plugins to the new syntax.