-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Labels
Description
There are 2 possible use-cases for record value. Both can use [@field.entity] attribute.
- Deserialization of set of fields into single type:
type input = {
date: [@field.entity] date',
}
and date' = {
day: int,
month: int,
year: int,
};
type output = {date: Js.Date.t};
type validators = {
date: {
entity: date' => result(Js.Date.t, message),
fields: {
day: {
strategy: Strategy.t,
validate: input => result(int, message),
},
...
}
}
};
// Interface
form.updateDateYear(2020)
form.dateYearResult
form.dateResult- Scoping set of fields. It might be useful when there is select in the form which affects which set of fields would be shown to a user.
type input = {
select,
a: [@field.entity] a',
b: [@field.entity] b',
}
and select = A | B,
and a' = { fieldA: string }
and b' = { fieldB: string };
type output = {
select,
a: a',
b: b',
};I'm not sure if the second one is useful though since it's possible to implement it using current api. But if it is, then the question is how to name each.
Also, the prototype of the former is not really thought out so suggestions are welcome.