keajs / kea-forms

MIT License
3 stars 3 forks source link

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

Open Tbhesswebber opened 11 months ago

Tbhesswebber commented 11 months ago

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