1
1
import { ValidationError } from './errors.js' ;
2
2
3
+ /**
4
+ * The value must be an exact match of `expected`.
5
+ */
3
6
export function literal ( expected : unknown , err = 'invalid value' ) {
4
7
return ( value : unknown , field : string ) => {
5
8
if ( value !== expected ) {
@@ -8,6 +11,9 @@ export function literal(expected: unknown, err = 'invalid value') {
8
11
} ;
9
12
}
10
13
14
+ /**
15
+ * The value must be between `min` and `max`.
16
+ */
11
17
export function minmax ( min : number , max : number , err = 'out of range' ) {
12
18
return ( value : number , field : string ) => {
13
19
if ( value < min || value > max ) {
@@ -16,6 +22,9 @@ export function minmax(min: number, max: number, err = 'out of range') {
16
22
} ;
17
23
}
18
24
25
+ /**
26
+ * The value may not be shorter than `min` or longer than `max`.
27
+ */
19
28
export function length ( min : number , max : number , err = 'invalid length' ) {
20
29
return ( value : string , field : string ) => {
21
30
if ( value . length < min || value . length > max ) {
@@ -24,6 +33,9 @@ export function length(min: number, max: number, err = 'invalid length') {
24
33
} ;
25
34
}
26
35
36
+ /**
37
+ * The value must be a valid email address.
38
+ */
27
39
export function email ( err = 'expected an email' ) {
28
40
return ( value : string , field : string ) => {
29
41
if ( ! value . match ( / ^ ( (? ! \. ) [ \w \- _ . ] * [ ^ . ] ) ( @ \w + ) ( \. \w + ( \. \w + ) ? [ ^ . \W ] ) $ / ) ) {
@@ -32,6 +44,9 @@ export function email(err = 'expected an email') {
32
44
} ;
33
45
}
34
46
47
+ /**
48
+ * The value must be a valid formatted imei.
49
+ */
35
50
export function imei ( err = 'invalid formatted imei' ) {
36
51
return ( value : string , field : string ) => {
37
52
if ( ! value . match ( / ^ [ 0 - 9 ] { 2 } s ? [ 0 - 9 ] { 6 } s ? [ 0 - 9 ] { 6 } s ? [ 0 - 9 ] { 1 , 3 } $ / ) ) {
0 commit comments