Skip to content

Commit 2653410

Browse files
committed
fix(core): makeParser impl
1 parent 6173467 commit 2653410

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

packages/core/core-types/validators.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@ export function makeValidator<T>(...values: T[]): (value: any) => value is T {
77
}
88

99
export 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
}

0 commit comments

Comments
 (0)