feat(types): adds types for manual type construction #5
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.
This PR adds the basic convenience types for manual type construction of logics using
kea-forms
. There are two primary ways of doing this - directly usingFormValues
andFormActions
types or using the convenienceMakeFormLogicType
wrapper that pushes the former two utilities intokea
'sMakeLogicType
.In order to get around the TypeScript restrictions on template literal and generic types as keys, I had to create an array of tuples to interpolate and a type utility parallel to
Object.entries
to turn the interpolation into an array using mapped types. I believe that this is pretty computationally heavy from the typescript side, so I'd especially like feedback on how to improve that if you can think of a meaningful way to do it.I'll update documentation after I get feedback on the direction of this PR. (cc @mariusandra)
Closes #4