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

feat(types): adds types for manual type construction #5

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Tbhesswebber
Copy link

@Tbhesswebber Tbhesswebber commented Nov 25, 2023

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 using FormValues and FormActions types or using the convenience MakeFormLogicType wrapper that pushes the former two utilities into kea's MakeLogicType.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Manual Type Creation
1 participant