Add .validDate() (#203)
This commit is contained in:
parent
0e687a23a8
commit
e9418fe1b9
3 changed files with 56 additions and 0 deletions
|
|
@ -128,6 +128,7 @@ const assertionTypeDescriptions = [
|
|||
'in range',
|
||||
'predicate returns truthy for any value',
|
||||
'predicate returns truthy for all values',
|
||||
'valid Date',
|
||||
'valid length',
|
||||
'whitespace string',
|
||||
...objectTypeNames,
|
||||
|
|
@ -311,6 +312,7 @@ const is = Object.assign(
|
|||
urlInstance: isUrlInstance,
|
||||
urlSearchParams: isUrlSearchParams,
|
||||
urlString: isUrlString,
|
||||
validDate: isValidDate,
|
||||
validLength: isValidLength,
|
||||
weakMap: isWeakMap,
|
||||
weakRef: isWeakRef,
|
||||
|
|
@ -760,6 +762,10 @@ export function isUrlString(value: unknown): value is string {
|
|||
}
|
||||
}
|
||||
|
||||
export function isValidDate(value: unknown): value is Date {
|
||||
return isDate(value) && !isNan(Number(value));
|
||||
}
|
||||
|
||||
export function isValidLength(value: unknown): value is number {
|
||||
return isSafeInteger(value) && value >= 0;
|
||||
}
|
||||
|
|
@ -917,6 +923,7 @@ type Assert = {
|
|||
propertyKey: (value: unknown) => asserts value is PropertyKey;
|
||||
formData: (value: unknown) => asserts value is FormData;
|
||||
urlSearchParams: (value: unknown) => asserts value is URLSearchParams;
|
||||
validDate: (value: unknown) => asserts value is Date;
|
||||
validLength: (value: unknown) => asserts value is number;
|
||||
whitespaceString: (value: unknown) => asserts value is string;
|
||||
|
||||
|
|
@ -1022,6 +1029,7 @@ export const assert: Assert = {
|
|||
urlInstance: assertUrlInstance,
|
||||
urlSearchParams: assertUrlSearchParams,
|
||||
urlString: assertUrlString,
|
||||
validDate: assertValidDate,
|
||||
validLength: assertValidLength,
|
||||
weakMap: assertWeakMap,
|
||||
weakRef: assertWeakRef,
|
||||
|
|
@ -1114,6 +1122,7 @@ const methodTypeMap = {
|
|||
isUrlInstance: 'URL',
|
||||
isUrlSearchParams: 'URLSearchParams',
|
||||
isUrlString: 'string with a URL',
|
||||
isValidDate: 'valid Date',
|
||||
isValidLength: 'valid length',
|
||||
isWeakMap: 'WeakMap',
|
||||
isWeakRef: 'WeakRef',
|
||||
|
|
@ -1651,6 +1660,12 @@ export function assertUrlString(value: unknown): asserts value is string {
|
|||
}
|
||||
}
|
||||
|
||||
export function assertValidDate(value: unknown): asserts value is Date {
|
||||
if (!isValidDate(value)) {
|
||||
throw new TypeError(typeErrorMessage('valid Date', value));
|
||||
}
|
||||
}
|
||||
|
||||
export function assertValidLength(value: unknown): asserts value is number {
|
||||
if (!isValidLength(value)) {
|
||||
throw new TypeError(typeErrorMessage('valid length', value));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue