File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -7,13 +7,18 @@ export function makeValidator<T>(...values: T[]): (value: any) => value is T {
77}
88
99export function makeParser < T > ( isValid : ( value : any ) => boolean , allowNumbers = false ) : ( value : any ) => T {
10- return function ( value : any ) : T {
11- if ( allowNumbers && typeof value === 'number' ) {
12- return value as T ;
10+ return ( value ) => {
11+ const lower = value && value . toLowerCase ( ) ;
12+ if ( isValid ( lower ) ) {
13+ return lower ;
14+ } else {
15+ if ( allowNumbers ) {
16+ const convNumber = + value ;
17+ if ( ! isNaN ( convNumber ) ) {
18+ return value ;
19+ }
20+ }
21+ throw new Error ( 'Invalid value: ' + value ) ;
1322 }
14- if ( isValid ( value ) ) {
15- return value as T ;
16- }
17- throw new Error ( `Invalid value: ${ value } ` ) ;
1823 } ;
1924}
You can’t perform that action at this time.
0 commit comments