Custom signals support
MarceloPrado opened this issue · comments
After reading the Custom Type docs, I tried creating a custom date
signal. I'm not sure the right way of injecting custom assert functions. For example, the number operator adds its own set of functions. I would like to do the same for my types.
For example:
const dateSignal = signal.type<Date>(z.date().parse)
I'm trying to understand how to enhance its types to support operations besides the basic ones:
Given dates are a non-trivial type, it would be awesome if I could add operations like isSameDay
, isAfter
, isBefore
, etc.
Turns out I can build a similar feature by using a regular number
signal:
dayOfMonth: signal.number.value<Date>((value) => getDate(value)),
dayOfWeek: signal.number.value<Date>((value) => getISODay(value)),
Then, I can use the number
assertions to achieve my goal.
Nonetheless, I'm really curious if my idea above is even possible. I've looked at the internals, but I need some time to get familiar with the TS gymnastics that happens in the signal/factory.ts
😂