@types/is
Version:
TypeScript definitions for is
1,375 lines (1,081 loc) • 29.6 kB
TypeScript
type EnvironmentVersionRange = number | string;
interface IsStatic {
// #region Type checks
/**
* Checks if the given value type is arguments.
*/
arguments(value: any): boolean;
/**
* Checks if the given value type is array.
*/
array(value: any): boolean;
/**
* Checks if the given value type is boolean.
*/
boolean(value: any): boolean;
/**
* Checks if the given value type is date.
*/
date(value: any): boolean;
/**
* Checks if the given value type is error.
*/
error(value: any): boolean;
/**
* Checks if the given value type is function.
*/
fn(value: any): boolean;
/**
* Checks if the given value type is function.
*/
function(value: any): boolean;
/**
* Checks if the given value type is NaN.
*/
nan(value: any): boolean;
/**
* Checks if the given value type is null.
*/
null(value: any): boolean;
/**
* Checks if the given value type is number.
*/
number(value: any): boolean;
/**
* Checks if the given value type is object.
*/
object(value: any): boolean;
/**
* Checks if the given value type is pure json object.
*/
json(value: any): boolean;
/**
* Checks if the given value type is RegExp.
*/
regexp(value: any): boolean;
/**
* Checks if the given value type is string.
*/
string(value: any): boolean;
/**
* Checks if the given value type is char.
*/
char(value: any): boolean;
/**
* Checks if the given value type is undefined.
*/
undefined(value: any): boolean;
/**
* Checks if the given value type is defined.
*/
defined(value: any): boolean;
/**
* Checks if the given value types are same type.
*/
sameType(value1: any, value2: any): boolean;
// #endregion
// #region Presence checks
/**
* Checks if the given value is empty.
*/
empty(value: any): boolean;
/**
* Checks if the given value is existy. (not null or undefined)
*/
existy(value: any): boolean;
/**
* Checks if the given value is truthy. (existy and not false)
*/
truthy(value: any): boolean;
/**
* Checks if the given value is falsy.
*/
falsy(value: any): boolean;
/**
* Checks if the given value is space.
*/
space(value: any): boolean;
// #endregion
// #region RegExp checks
/**
* Checks if the given value matches url regexp.
*/
url(value: any): boolean;
/**
* Checks if the given value matches email regexp.
*/
email(value: any): boolean;
/**
* Checks if the given value matches credit card regexp.
*/
creditCard(value: any): boolean;
/**
* Checks if the given value matches alpha numeric regexp.
*/
alphaNumeric(value: any): boolean;
/**
* Checks if the given value matches time string regexp.
*/
timeString(value: any): boolean;
/**
* Checks if the given value matches date string regexp.
*/
dateString(value: any): boolean;
/**
* Checks if the given value matches US zip code regexp.
*/
usZipCode(value: any): boolean;
/**
* Checks if the given value matches Canada postal code regexp.
*/
caPostalCode(value: any): boolean;
/**
* Checks if the given value matches UK post code regexp.
*/
ukPostCode(value: any): boolean;
/**
* Checks if the given value matches North American numbering plan phone regexp.
*/
nanpPhone(value: any): boolean;
/**
* Checks if the given value matches extensible provisioning protocol phone regexp.
*/
eppPhone(value: any): boolean;
/**
* Checks if the given value matches social security number regexp.
*/
socialSecurityNumber(value: any): boolean;
/**
* Checks if the given value matches affirmative regexp.
*/
affirmative(value: any): boolean;
/**
* Checks if the given value matches hexadecimal regexp.
*/
hexadecimal(value: any): boolean;
/**
* Checks if the given value matches hexcolor regexp.
*/
hexColor(value: any): boolean;
/**
* Checks if the given value matches ip regexp.
*/
ip(value: any): boolean;
/**
* Checks if the given value matches ipv4 regexp
*/
ipv4(value: any): boolean;
/**
* Checks if the given value matches ipv6 regexp
*/
ipv6(value: any): boolean;
// #endregion
// #region String checks
/**
* Checks if the given string contains a substring.
*/
include(value1: string, value2: string): boolean;
/**
* Checks if the given string is UPPERCASE.
*/
upperCase(value: string): boolean;
/**
* Checks if the given string is lowercase.
*/
lowerCase(value: string): boolean;
/**
* Checks if the given string starts with substring.
*/
startWith(value1: string, value2: string): boolean;
/**
* Checks if the given string ends with substring.
*/
endWith(value1: string, value2: string): boolean;
/**
* Checks if the given string is capitalized.
*/
capitalized(value: string): boolean;
/**
* Checks if the given string is palindrome.
*/
palindrome(value: string): boolean;
// #endregion
// #region Arithmetic checks
/**
* Checks if the given values are equal.
*/
equal(value1: any, value2: any): boolean;
/**
* Checks if the given value is even.
*/
even(value: number): boolean;
/**
* Checks if the given value is odd.
*/
odd(value: number): boolean;
/**
* Checks if the given value is positive.
*/
positive(value: number): boolean;
/**
* Checks if the given value is negative.
*/
negative(value: number): boolean;
/**
* Checks if the given value is above minimum value.
*/
above(value: number, min: number): boolean;
/**
* Checks if the given value is under maximum value.
*/
under(value: number, max: number): boolean;
/**
* Checks if the given value is within minimum and maximum values.
*/
within(value: number, min: number, max: number): boolean;
/**
* Checks if the given value is decimal.
*/
decimal(value: number): boolean;
/**
* Checks if the given value is integer.
*/
integer(value: number): boolean;
/**
* Checks if the given value is finite.
*/
finite(value: number): boolean;
/**
* Checks if the given value is infinite.
*/
infinite(value: number): boolean;
// #endregion
// #region Object checks
/**
* Checks if objects' property count is equal to given count.
*/
propertyCount(value: any, count: number): boolean;
/**
* Checks if the given property is defined on object.
*/
propertyDefined(value: any, property: string): boolean;
/**
* Checks if the given object is window object.
*/
windowObject(value: any): boolean;
/**
* Checks if the given object is a dom node.
*/
domNode(value: any): boolean;
// #endregion
// #region Array checks
/**
* Checks if the given item is in array.
*/
inArray<T>(value: T, array: T[]): boolean;
/**
* Checks if the given array is sorted.
*/
sorted(value: any[]): boolean;
// #endregion
// #region Environment checks
/**
* Checks if current browser is ie
* @param value Optional version range of browser
*/
ie(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current browser is chrome.
* @param value Optional version range of browser
*/
chrome(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current browser is firefox.
* @param value Optional version range of browser
*/
firefox(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current browser is edge.
* @param value Optional version range of browser
*/
edge(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current browser is opera.
* @param value Optional version range of browser
*/
opera(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current browser is safari.
* @param value Optional version range of browser
*/
safari(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current browser is phantom.
* @param value Optional version range of browser
*/
phantom(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current device has ios.
*/
ios(): boolean;
/**
* Checks if current device is iPhone.
* @param value Optional version range of device
*/
iphone(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current device is iPad.
* @param value Optional version range of device
*/
ipad(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current device is iPod.
* @param value Optional version range of device
*/
ipod(range?: EnvironmentVersionRange): boolean;
/**
* Checks if current device has Android.
*/
android(): boolean;
/**
* Checks if current device is Android phone.
*/
androidPhone(): boolean;
/**
* Checks if current device is Android tablet.
*/
androidTablet(): boolean;
/**
* Checks if current device is Blackberry.
*/
blackberry(): boolean;
/**
* Checks if current device is Windows phone.
*/
windowsPhone(): boolean;
/**
* Checks if current device is Windows tablet.
*/
windowsTablet(): boolean;
/**
* Checks if current OS is Windows.
*/
windows(): boolean;
/**
* Checks if current OS is Mac OS X.
*/
mac(): boolean;
/**
* Checks if current OS is linux.
*/
linux(): boolean;
/**
* Checks if current device is desktop.
*/
desktop(): boolean;
/**
* Checks if current device is mobile.
*/
mobile(): boolean;
/**
* Checks if current device is tablet.
*/
tablet(): boolean;
/**
* Checks if current device is online.
*/
online(): boolean;
/**
* Checks if current device is offline.
*/
offline(): boolean;
/**
* Checks if current device supports touch.
*/
touchDevice(): boolean;
// #endregion
// #region Time checks
/**
* Checks if the given date object indicate today.
*/
today(value: Date): boolean;
/**
* Checks if the given date object indicate yesterday.
*/
yesterday(value: Date): boolean;
/**
* Checks if the given date object indicate tomorrow.
*/
tomorrow(value: Date): boolean;
/**
* Checks if the given date object indicate past.
*/
past(value: Date): boolean;
/**
* Checks if the given date object indicate future.
*/
future(value: Date): boolean;
/**
* Checks if the given date objects' day equal given dayString parameter.
*/
day(value: Date, dayString: string): boolean;
/**
* Checks if the given date objects' month equal given monthString parameter.
*/
month(value: Date, monthString: string): boolean;
/**
* Checks if the given date objects' year equal given yearNumber parameter.
*/
year(value: Date, yearNumber: number): boolean;
/**
* Checks if the given year number is a leap year
*/
leapYear(value: number): boolean;
/**
* Checks if the given date objects' day is weekend.
*/
weekend(value: Date): boolean;
/**
* Checks if the given date objects' day is weekday.
*/
weekday(value: Date): boolean;
/**
* Checks if date is within given range.
*/
inDateRange(value: Date, start: Date, end: Date): boolean;
/**
* Checks if the given date is between now and 7 days ago.
*/
inLastWeek(value: Date): boolean;
/**
* Checks if the given date is between now and a month ago.
*/
inLastMonth(value: Date): boolean;
/**
* Checks if the given date is between now and a year ago.
*/
inLastYear(value: Date): boolean;
/**
* Checks if the given date is between now and 7 days later.
*/
inNextWeek(value: Date): boolean;
/**
* Checks if the given date is between now and a month later.
*/
inNextMonth(value: Date): boolean;
/**
* Checks if the given date is between now and a year later.
*/
inNextYear(value: Date): boolean;
/**
* Checks if the given date is in the parameter quarter.
*/
quarterOfYear(value: Date, quarter: number): boolean;
/**
* Checks if the given date is in daylight saving time.
*/
dayLightSavingTime(value: Date): boolean;
// #endregion
}
interface IsStaticApi {
// #region Type checks
/**
* Checks if the given value type is arguments.
*/
arguments(...value: any[]): boolean;
/**
* Checks if the given value type is arguments.
*/
arguments(value: any[]): boolean;
/**
* Checks if the given value type is array.
*/
array(...value: any[]): boolean;
/**
* Checks if the given value type is array.
*/
array(value: any[]): boolean;
/**
* Checks if the given value type is boolean.
*/
boolean(...value: any[]): boolean;
/**
* Checks if the given value type is boolean.
*/
boolean(value: any[]): boolean;
/**
* Checks if the given value type is date.
*/
date(...value: any[]): boolean;
/**
* Checks if the given value type is date.
*/
date(value: any[]): boolean;
/**
* Checks if the given value type is error.
*/
error(...value: any[]): boolean;
/**
* Checks if the given value type is error.
*/
error(value: any[]): boolean;
/**
* Checks if the given value type is function.
*/
fn(...value: any[]): boolean;
/**
* Checks if the given value type is function.
*/
fn(value: any[]): boolean;
/**
* Checks if the given value type is function.
*/
function(...value: any[]): boolean;
/**
* Checks if the given value type is function.
*/
function(value: any[]): boolean;
/**
* Checks if the given value type is NaN.
*/
nan(...value: any[]): boolean;
/**
* Checks if the given value type is NaN.
*/
nan(value: any[]): boolean;
/**
* Checks if the given value type is null.
*/
null(...value: any[]): boolean;
/**
* Checks if the given value type is null.
*/
null(value: any[]): boolean;
/**
* Checks if the given value type is number.
*/
number(...value: any[]): boolean;
/**
* Checks if the given value type is number.
*/
number(value: any[]): boolean;
/**
* Checks if the given value type is object.
*/
object(...value: any[]): boolean;
/**
* Checks if the given value type is object.
*/
object(value: any[]): boolean;
/**
* Checks if the given value type is pure json object.
*/
json(...value: any[]): boolean;
/**
* Checks if the given value type is pure json object.
*/
json(value: any[]): boolean;
/**
* Checks if the given value type is RegExp.
*/
regexp(...value: any[]): boolean;
/**
* Checks if the given value type is RegExp.
*/
regexp(value: any[]): boolean;
/**
* Checks if the given value type is string.
*/
string(...value: any[]): boolean;
/**
* Checks if the given value type is string.
*/
string(value: any[]): boolean;
/**
* Checks if the given value type is char.
*/
char(...value: any[]): boolean;
/**
* Checks if the given value type is char.
*/
char(value: any[]): boolean;
/**
* Checks if the given value type is undefined.
*/
undefined(...value: any[]): boolean;
/**
* Checks if the given value type is undefined.
*/
undefined(value: any[]): boolean;
/**
* Checks if the given value type is defined.
*/
defined(...value: any[]): boolean;
/**
* Checks if the given value type is defined.
*/
defined(value: any[]): boolean;
// #endregion
// #region Presence checks
/**
* Checks if the given value is empty.
*/
empty(...value: any[]): boolean;
/**
* Checks if the given value is empty.
*/
empty(value: any[]): boolean;
/**
* Checks if the given value is existy. (not null or undefined)
*/
existy(...value: any[]): boolean;
/**
* Checks if the given value is existy. (not null or undefined)
*/
existy(value: any[]): boolean;
/**
* Checks if the given value is truthy. (existy and not false)
*/
truthy(...value: any[]): boolean;
/**
* Checks if the given value is truthy. (existy and not false)
*/
truthy(value: any[]): boolean;
/**
* Checks if the given value is falsy.
*/
falsy(...value: any[]): boolean;
/**
* Checks if the given value is falsy.
*/
falsy(value: any[]): boolean;
/**
* Checks if the given value is space.
*/
space(...value: any[]): boolean;
/**
* Checks if the given value is space.
*/
space(value: any[]): boolean;
// #endregion
// #region RegExp checks
/**
* Checks if the given value matches url regexp.
*/
url(...value: any[]): boolean;
/**
* Checks if the given value matches url regexp.
*/
url(value: any[]): boolean;
/**
* Checks if the given value matches email regexp.
*/
email(...value: any[]): boolean;
/**
* Checks if the given value matches email regexp.
*/
email(value: any[]): boolean;
/**
* Checks if the given value matches credit card regexp.
*/
creditCard(...value: any[]): boolean;
/**
* Checks if the given value matches credit card regexp.
*/
creditCard(value: any[]): boolean;
/**
* Checks if the given value matches alpha numeric regexp.
*/
alphaNumeric(...value: any[]): boolean;
/**
* Checks if the given value matches alpha numeric regexp.
*/
alphaNumeric(value: any[]): boolean;
/**
* Checks if the given value matches time string regexp.
*/
timeString(...value: any[]): boolean;
/**
* Checks if the given value matches time string regexp.
*/
timeString(value: any[]): boolean;
/**
* Checks if the given value matches date string regexp.
*/
dateString(...value: any[]): boolean;
/**
* Checks if the given value matches date string regexp.
*/
dateString(value: any[]): boolean;
/**
* Checks if the given value matches US zip code regexp.
*/
usZipCode(...value: any[]): boolean;
/**
* Checks if the given value matches US zip code regexp.
*/
usZipCode(value: any[]): boolean;
/**
* Checks if the given value matches Canada postal code regexp.
*/
caPostalCode(...value: any[]): boolean;
/**
* Checks if the given value matches Canada postal code regexp.
*/
caPostalCode(value: any[]): boolean;
/**
* Checks if the given value matches UK post code regexp.
*/
ukPostCode(...value: any[]): boolean;
/**
* Checks if the given value matches UK post code regexp.
*/
ukPostCode(value: any[]): boolean;
/**
* Checks if the given value matches North American numbering plan phone regexp.
*/
nanpPhone(...value: any[]): boolean;
/**
* Checks if the given value matches North American numbering plan phone regexp.
*/
nanpPhone(value: any[]): boolean;
/**
* Checks if the given value matches extensible provisioning protocol phone regexp.
*/
eppPhone(...value: any[]): boolean;
/**
* Checks if the given value matches extensible provisioning protocol phone regexp.
*/
eppPhone(value: any[]): boolean;
/**
* Checks if the given value matches social security number regexp.
*/
socialSecurityNumber(...value: any[]): boolean;
/**
* Checks if the given value matches social security number regexp.
*/
socialSecurityNumber(value: any[]): boolean;
/**
* Checks if the given value matches affirmative regexp.
*/
affirmative(...value: any[]): boolean;
/**
* Checks if the given value matches affirmative regexp.
*/
affirmative(value: any[]): boolean;
/**
* Checks if the given value matches hexadecimal regexp.
*/
hexadecimal(...value: any[]): boolean;
/**
* Checks if the given value matches hexadecimal regexp.
*/
hexadecimal(value: any[]): boolean;
/**
* Checks if the given value matches hexcolor regexp.
*/
hexColor(...value: any[]): boolean;
/**
* Checks if the given value matches hexcolor regexp.
*/
hexColor(value: any[]): boolean;
/**
* Checks if the given value matches ip regexp.
*/
ip(...value: any[]): boolean;
/**
* Checks if the given value matches ip regexp.
*/
ip(value: any[]): boolean;
/**
* Checks if the given value matches ipv4 regexp.
*/
ipv4(...value: any[]): boolean;
/**
* Checks if the given value matches ipv4 regexp.
*/
ipv4(value: any[]): boolean;
/**
* Checks if the given value matches ipv6 regexp.
*/
ipv6(...value: any[]): boolean;
/**
* Checks if the given value matches ipv6 regexp.
*/
ipv6(value: any[]): boolean;
// #endregion
// #region String checks
/**
* Checks if the given string is UPPERCASE.
*/
upperCase(...value: string[]): boolean;
/**
* Checks if the given string is UPPERCASE.
*/
upperCase(value: string[]): boolean;
/**
* Checks if the given string is lowercase.
*/
lowerCase(...value: string[]): boolean;
/**
* Checks if the given string is lowercase.
*/
lowerCase(value: string[]): boolean;
/**
* Checks if the given string is capitalized.
*/
capitalized(...value: string[]): boolean;
/**
* Checks if the given string is capitalized.
*/
capitalized(value: string[]): boolean;
/**
* Checks if the given string is palindrome
*/
palindrome(...value: string[]): boolean;
/**
* Checks if the given string is palindrome
*/
palindrome(value: string[]): boolean;
// #endregion
// #region Arithmetic checks
/**
* Checks if the given value is even.
*/
even(...value: number[]): boolean;
/**
* Checks if the given value is even.
*/
even(value: number[]): boolean;
/**
* Checks if the given value is odd.
*/
odd(...value: number[]): boolean;
/**
* Checks if the given value is odd.
*/
odd(value: number[]): boolean;
/**
* Checks if the given value is positive.
*/
positive(...value: number[]): boolean;
/**
* Checks if the given value is positive.
*/
positive(value: number[]): boolean;
/**
* Checks if the given value is negative.
*/
negative(...value: number[]): boolean;
/**
* Checks if the given value is negative.
*/
negative(value: number[]): boolean;
/**
* Checks if the given value is decimal.
*/
decimal(...value: number[]): boolean;
/**
* Checks if the given value is decimal.
*/
decimal(value: number[]): boolean;
/**
* Checks if the given value is integer.
*/
integer(...value: number[]): boolean;
/**
* Checks if the given value is integer.
*/
integer(value: number[]): boolean;
/**
* Checks if the given value is finite.
*/
finite(...value: number[]): boolean;
/**
* Checks if the given value is finite.
*/
finite(value: number[]): boolean;
/**
* Checks if the given value is infinite.
*/
infinite(...value: number[]): boolean;
/**
* Checks if the given value is infinite.
*/
infinite(value: number[]): boolean;
// #endregion
// #region Object checks
/**
* Checks if the given object is window object.
*/
windowObject(...value: any[]): boolean;
/**
* Checks if the given object is window object.
*/
windowObject(value: any[]): boolean;
/**
* Checks if the given object is a dom node.
*/
domNode(...value: any[]): boolean;
/**
* Checks if the given object is a dom node.
*/
domNode(value: any[]): boolean;
// #endregion
// #region Array checks
/**
* Checks if the given array is sorted.
*/
sorted(...value: number[][]): boolean;
/**
* Checks if the given array is sorted.
*/
sorted(value: number[][]): boolean;
// #endregion
// #region Time checks
/**
* Checks if the given date object indicate today.
*/
today(...value: Date[]): boolean;
/**
* Checks if the given date object indicate today.
*/
today(value: Date[]): boolean;
/**
* Checks if the given date object indicate yesterday.
*/
yesterday(...value: Date[]): boolean;
/**
* Checks if the given date object indicate yesterday.
*/
yesterday(value: Date[]): boolean;
/**
* Checks if the given date object indicate tomorrow.
*/
tomorrow(...value: Date[]): boolean;
/**
* Checks if the given date object indicate tomorrow.
*/
tomorrow(value: Date[]): boolean;
/**
* Checks if the given date object indicate past.
*/
past(...value: Date[]): boolean;
/**
* Checks if the given date object indicate past.
*/
past(value: Date[]): boolean;
/**
* Checks if the given date object indicate future.
*/
future(...value: Date[]): boolean;
/**
* Checks if the given date object indicate future.
*/
future(value: Date[]): boolean;
/**
* Checks if the given year number is a leap year
*/
leapYear(...value: number[]): boolean;
/**
* Checks if the given year number is a leap year
*/
leapYear(value: number[]): boolean;
/**
* Checks if the given date objects' day is weekend.
*/
weekend(...value: Date[]): boolean;
/**
* Checks if the given date objects' day is weekend.
*/
weekend(value: Date[]): boolean;
/**
* Checks if the given date objects' day is weekday.
*/
weekday(...value: Date[]): boolean;
/**
* Checks if the given date objects' day is weekday.
*/
weekday(value: Date[]): boolean;
// #endregion
}
interface Is extends IsStatic {
not: IsStatic;
any: IsStaticApi;
all: IsStaticApi;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "url"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "email"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "creditCard"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "alphaNumeric"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "timeString"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "dateString"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "usZipCode"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "caPostalCode"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "nanpPhone"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "eppPhone"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "affirmative"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "hexadecimal"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "hexColor"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "ip"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: "ipv6"): boolean;
/**
* Override RegExps if you think they suck.
*/
setRegexp(value: RegExp, regexp: string): boolean;
/**
* Change namespace of library to prevent name collisions.
*/
setNamespace(): Is;
}
declare var is: Is;
declare module "is" {
export = is;
}
declare module "is_js" {
export = is;
}