Custom signals support
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 😂