@colisweb/rescript-toolkit 5.13.1 → 5.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/form/ReSchema.res +17 -0
- package/src/form/Reform.res +1 -0
package/package.json
CHANGED
package/src/form/ReSchema.res
CHANGED
|
@@ -29,6 +29,7 @@ module Make = (Lenses: Lenses) => {
|
|
|
29
29
|
| Email({field: Lenses.field<string>, error: option<string>}): t
|
|
30
30
|
| Phone({field: Lenses.field<string>, error: option<string>}): t
|
|
31
31
|
| Password({field: Lenses.field<string>, error: option<string>}): t
|
|
32
|
+
| OptionalPassword({field: Lenses.field<string>, error: option<string>}): t
|
|
32
33
|
| NoValidation({field: Lenses.field<'a>}): t
|
|
33
34
|
| StringNonEmpty({field: Lenses.field<string>, error: option<string>}): t
|
|
34
35
|
| StringRegExp({field: Lenses.field<string>, matches: string, error: option<string>}): t
|
|
@@ -85,6 +86,7 @@ module Make = (Lenses: Lenses) => {
|
|
|
85
86
|
let email = (~error=?, field) => [Email({field, error})]
|
|
86
87
|
let phone = (~error=?, field) => [Phone({field, error})]
|
|
87
88
|
let password = (~error=?, field) => [Password({field, error})]
|
|
89
|
+
let optionalPassword = (~error=?, field) => [OptionalPassword({field, error})]
|
|
88
90
|
|
|
89
91
|
let nonEmpty = (~error=?, field) => [StringNonEmpty({field, error})]
|
|
90
92
|
|
|
@@ -231,6 +233,19 @@ module Make = (Lenses: Lenses) => {
|
|
|
231
233
|
},
|
|
232
234
|
)
|
|
233
235
|
}
|
|
236
|
+
| Validation.OptionalPassword({field, error}) => {
|
|
237
|
+
let value = Lenses.get(values, field)
|
|
238
|
+
|
|
239
|
+
(
|
|
240
|
+
Field(field),
|
|
241
|
+
switch value {
|
|
242
|
+
| "" => Valid
|
|
243
|
+
| password if !Js.Re.test_(%re("/(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{10,}/"), password) =>
|
|
244
|
+
Error(error->Option.getWithDefault(i18n.passwordTooShort))
|
|
245
|
+
| _ => Valid
|
|
246
|
+
},
|
|
247
|
+
)
|
|
248
|
+
}
|
|
234
249
|
| Validation.NoValidation({field}) => (Field(field), Valid)
|
|
235
250
|
| Validation.StringNonEmpty({field, error}) =>
|
|
236
251
|
let value = Lenses.get(values, field)
|
|
@@ -330,6 +345,7 @@ module Make = (Lenses: Lenses) => {
|
|
|
330
345
|
| Validation.FloatMax({field}) => Field(field) == fieldName
|
|
331
346
|
| Validation.Email({field}) => Field(field) == fieldName
|
|
332
347
|
| Validation.Password({field}) => Field(field) == fieldName
|
|
348
|
+
| Validation.OptionalPassword({field}) => Field(field) == fieldName
|
|
333
349
|
| Validation.NoValidation({field}) => Field(field) == fieldName
|
|
334
350
|
| Validation.StringNonEmpty({field}) => Field(field) == fieldName
|
|
335
351
|
| Validation.StringRegExp({field}) => Field(field) == fieldName
|
|
@@ -351,6 +367,7 @@ module Make = (Lenses: Lenses) => {
|
|
|
351
367
|
| Validation.Phone({field}) => Field(field) == fieldName
|
|
352
368
|
| Validation.True({field}) => Field(field) == fieldName
|
|
353
369
|
| Validation.Password({field}) => Field(field) == fieldName
|
|
370
|
+
| Validation.OptionalPassword({field}) => Field(field) == fieldName
|
|
354
371
|
| Validation.IntMin({field}) => Field(field) == fieldName
|
|
355
372
|
| Validation.IntMax({field}) => Field(field) == fieldName
|
|
356
373
|
| Validation.FloatMin({field}) => Field(field) == fieldName
|
package/src/form/Reform.res
CHANGED
|
@@ -113,6 +113,7 @@ module Make = (Config: Config) => {
|
|
|
113
113
|
| Validation.Email({field}) => (Field(field), Pristine)
|
|
114
114
|
| Validation.Phone({field}) => (Field(field), Pristine)
|
|
115
115
|
| Validation.Password({field}) => (Field(field), Pristine)
|
|
116
|
+
| Validation.OptionalPassword({field}) => (Field(field), Pristine)
|
|
116
117
|
| Validation.NoValidation({field}) => (Field(field), Pristine)
|
|
117
118
|
| Validation.StringNonEmpty({field}) => (Field(field), Pristine)
|
|
118
119
|
| Validation.StringRegExp({field}) => (Field(field), Pristine)
|