@xylabs/typeof 4.8.9 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/index.mjs +98 -0
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/is.d.ts +37 -0
- package/dist/types/is.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +1 -0
- package/src/is.ts +113 -0
package/dist/neutral/index.mjs
CHANGED
|
@@ -26,6 +26,80 @@ var ifTypeOf = (typeName, value, trueFunc, isFunc) => {
|
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
+
// src/is.ts
|
|
30
|
+
function isUndefined(value) {
|
|
31
|
+
return value !== void 0;
|
|
32
|
+
}
|
|
33
|
+
function isNull(value) {
|
|
34
|
+
return value === null;
|
|
35
|
+
}
|
|
36
|
+
function isUndefinedOrNull(value) {
|
|
37
|
+
return isUndefined(value) || isNull(value);
|
|
38
|
+
}
|
|
39
|
+
function isBigInt(value) {
|
|
40
|
+
return typeof value === "bigint";
|
|
41
|
+
}
|
|
42
|
+
function isString(value) {
|
|
43
|
+
return typeof value === "string";
|
|
44
|
+
}
|
|
45
|
+
function isNumber(value) {
|
|
46
|
+
return typeof value === "number";
|
|
47
|
+
}
|
|
48
|
+
function isObject(value) {
|
|
49
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
50
|
+
}
|
|
51
|
+
function isArray(value) {
|
|
52
|
+
return Array.isArray(value);
|
|
53
|
+
}
|
|
54
|
+
function isFunction(value) {
|
|
55
|
+
return typeof value === "function";
|
|
56
|
+
}
|
|
57
|
+
function isSymbol(value) {
|
|
58
|
+
return typeof value === "symbol";
|
|
59
|
+
}
|
|
60
|
+
function isEmptyObject(value) {
|
|
61
|
+
return isObject(value) && Object.keys(value).length === 0;
|
|
62
|
+
}
|
|
63
|
+
function isEmptyString(value) {
|
|
64
|
+
return isString(value) && value.length === 0;
|
|
65
|
+
}
|
|
66
|
+
function isEmptyArray(value) {
|
|
67
|
+
return isArray(value) && value.length === 0;
|
|
68
|
+
}
|
|
69
|
+
function isPopulatedArray(value) {
|
|
70
|
+
return isArray(value) && value.length > 0;
|
|
71
|
+
}
|
|
72
|
+
function isEmpty(value) {
|
|
73
|
+
return isUndefinedOrNull(value) || isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value);
|
|
74
|
+
}
|
|
75
|
+
function isFalsy(value) {
|
|
76
|
+
return !value;
|
|
77
|
+
}
|
|
78
|
+
function isTruthy(value) {
|
|
79
|
+
return !!value;
|
|
80
|
+
}
|
|
81
|
+
function isBoolean(value) {
|
|
82
|
+
return typeof value === "boolean";
|
|
83
|
+
}
|
|
84
|
+
function isDateString(value) {
|
|
85
|
+
return isString(value) && !Number.isNaN(Date.parse(value));
|
|
86
|
+
}
|
|
87
|
+
function isDate(value) {
|
|
88
|
+
return value instanceof Date;
|
|
89
|
+
}
|
|
90
|
+
function isRegExp(value) {
|
|
91
|
+
return value instanceof RegExp;
|
|
92
|
+
}
|
|
93
|
+
function isError(value) {
|
|
94
|
+
return value instanceof Error;
|
|
95
|
+
}
|
|
96
|
+
function isPromise(value) {
|
|
97
|
+
return value instanceof Promise;
|
|
98
|
+
}
|
|
99
|
+
function isMap(value) {
|
|
100
|
+
return value instanceof Map;
|
|
101
|
+
}
|
|
102
|
+
|
|
29
103
|
// src/isType.ts
|
|
30
104
|
var isType = (value, expectedType) => {
|
|
31
105
|
const typeofValue = typeof value;
|
|
@@ -105,11 +179,35 @@ var validateType = (typeName, value, optional = false) => {
|
|
|
105
179
|
export {
|
|
106
180
|
ifDefined,
|
|
107
181
|
ifTypeOf,
|
|
182
|
+
isArray,
|
|
183
|
+
isBigInt,
|
|
184
|
+
isBoolean,
|
|
185
|
+
isDate,
|
|
186
|
+
isDateString,
|
|
187
|
+
isEmpty,
|
|
188
|
+
isEmptyArray,
|
|
189
|
+
isEmptyObject,
|
|
190
|
+
isEmptyString,
|
|
191
|
+
isError,
|
|
192
|
+
isFalsy,
|
|
193
|
+
isFunction,
|
|
194
|
+
isMap,
|
|
195
|
+
isNull,
|
|
196
|
+
isNumber,
|
|
197
|
+
isObject,
|
|
198
|
+
isPopulatedArray,
|
|
199
|
+
isPromise,
|
|
200
|
+
isRegExp,
|
|
201
|
+
isString,
|
|
202
|
+
isSymbol,
|
|
203
|
+
isTruthy,
|
|
108
204
|
isType,
|
|
109
205
|
isTypedArray,
|
|
110
206
|
isTypedKey,
|
|
111
207
|
isTypedObject,
|
|
112
208
|
isTypedValue,
|
|
209
|
+
isUndefined,
|
|
210
|
+
isUndefinedOrNull,
|
|
113
211
|
isValidTypedFieldPair,
|
|
114
212
|
typeOf,
|
|
115
213
|
validateType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/typeOf.ts","../../src/ifDefined.ts","../../src/ifTypeOf.ts","../../src/isType.ts","../../src/Typed.ts","../../src/validateType.ts"],"sourcesContent":["import type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n","import { typeOf } from './typeOf.ts'\n\nexport const ifDefined = <T>(value: T, func: (value: T) => void) => {\n switch (typeOf(value)) {\n case 'undefined':\n case 'null': {\n break\n }\n default: {\n func(value)\n return value\n }\n }\n}\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const ifTypeOf = <T, R>(typeName: TypeOfTypes, value: unknown, trueFunc: (value: T) => R, isFunc?: (value: T) => boolean) => {\n switch (typeOf(value)) {\n case typeName: {\n return !isFunc || isFunc(value as T) ? trueFunc(value as T) : undefined\n }\n }\n}\n","import type { FieldType } from './ObjectTypeShape.ts'\n\nexport const isType = (value: unknown, expectedType: FieldType) => {\n const typeofValue = typeof value\n switch (expectedType) {\n case 'array': {\n return Array.isArray(value)\n }\n case 'null': {\n return value === null\n }\n case 'undefined': {\n return value === undefined\n }\n case 'object': {\n // nulls resolve to objects, so exclude them\n if (value === null) {\n return false\n }\n // arrays resolve to objects, so exclude them\n return typeofValue === 'object' && !Array.isArray(value)\n }\n default: {\n return typeofValue === expectedType\n }\n }\n}\n","import { isType } from './isType.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\nexport type TypedObject = { [key: TypedKey]: TypedValue } | object\nexport type TypedArray = TypedValue[]\n\nexport const isTypedKey = (value: unknown): value is TypedKey => {\n switch (typeof value) {\n case 'string':\n case 'bigint':\n case 'number':\n case 'symbol': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\nexport const isTypedValue = (value: unknown): value is TypedValue => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n return true\n }\n default: {\n return value === null || isTypedObject(value) || isTypedArray(value)\n }\n }\n}\n\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && !value.some(item => !isTypedValue(item))\n}\n\nexport const isValidTypedFieldPair = (pair: [key: unknown, value: unknown]): pair is [key: TypedKey, value: TypedValue] => {\n const [key, value] = pair\n return isTypedKey(key) && isTypedValue(value)\n}\n\nexport const isTypedObject = (value: unknown): value is TypedObject => {\n return (\n isType(value, 'object')\n // check if all keys are strings\n && !Object.entries(value as object).some(item => !isValidTypedFieldPair(item))\n )\n}\n\n// Object Type Test\n/*\ninterface TestObject {\n value: number\n}\n\nconst x: TestObject = { value: 1 }\n\nconst f = (p: TypedValue): void => {\n console.log(p)\n}\n\nf(x)\n*/\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const validateType = <T>(typeName: TypeOfTypes, value: T, optional = false): [T | undefined, Error[]] => {\n switch (typeOf(value)) {\n case typeName: {\n return [value, []]\n }\n default: {\n if (optional && typeOf(value) === 'undefined') {\n return [value, []]\n }\n return [undefined, [new Error(`value type is not '${typeName}:${typeof value}'`)]]\n }\n }\n}\n"],"mappings":";AAEO,IAAM,SAAS,CAAI,SAAyB;AACjD,SAAO,MAAM,QAAQ,IAAI,IAAI,UAAU,OAAO;AAChD;;;ACFO,IAAM,YAAY,CAAI,OAAU,SAA6B;AAClE,UAAQ,OAAO,KAAK,GAAG;AAAA,IACrB,KAAK;AAAA,IACL,KAAK,QAAQ;AACX;AAAA,IACF;AAAA,IACA,SAAS;AACP,WAAK,KAAK;AACV,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACVO,IAAM,WAAW,CAAO,UAAuB,OAAgB,UAA2B,WAAmC;AAClI,UAAQ,OAAO,KAAK,GAAG;AAAA,IACrB,KAAK,UAAU;AACb,aAAO,CAAC,UAAU,OAAO,KAAU,IAAI,SAAS,KAAU,IAAI;AAAA,IAChE;AAAA,EACF;AACF;;;ACPO,IAAM,SAAS,CAAC,OAAgB,iBAA4B;AACjE,QAAM,cAAc,OAAO;AAC3B,UAAQ,cAAc;AAAA,IACpB,KAAK,SAAS;AACZ,aAAO,MAAM,QAAQ,KAAK;AAAA,IAC5B;AAAA,IACA,KAAK,QAAQ;AACX,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,KAAK,aAAa;AAChB,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,KAAK,UAAU;AAEb,UAAI,UAAU,MAAM;AAClB,eAAO;AAAA,MACT;AAEA,aAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,KAAK;AAAA,IACzD;AAAA,IACA,SAAS;AACP,aAAO,gBAAgB;AAAA,IACzB;AAAA,EACF;AACF;;;AClBO,IAAM,aAAa,CAAC,UAAsC;AAC/D,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,UAAU;AACb,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AACP,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,IAAM,eAAe,CAAC,UAAwC;AACnE,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,WAAW;AACd,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AACP,aAAO,UAAU,QAAQ,cAAc,KAAK,KAAK,aAAa,KAAK;AAAA,IACrE;AAAA,EACF;AACF;AAEO,IAAM,eAAe,CAAC,UAAwC;AACnE,SAAO,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,KAAK,UAAQ,CAAC,aAAa,IAAI,CAAC;AACxE;AAEO,IAAM,wBAAwB,CAAC,SAAqF;AACzH,QAAM,CAAC,KAAK,KAAK,IAAI;AACrB,SAAO,WAAW,GAAG,KAAK,aAAa,KAAK;AAC9C;AAEO,IAAM,gBAAgB,CAAC,UAAyC;AACrE,SACE,OAAO,OAAO,QAAQ,KAEnB,CAAC,OAAO,QAAQ,KAAe,EAAE,KAAK,UAAQ,CAAC,sBAAsB,IAAI,CAAC;AAEjF;;;AC/CO,IAAM,eAAe,CAAI,UAAuB,OAAU,WAAW,UAAoC;AAC9G,UAAQ,OAAO,KAAK,GAAG;AAAA,IACrB,KAAK,UAAU;AACb,aAAO,CAAC,OAAO,CAAC,CAAC;AAAA,IACnB;AAAA,IACA,SAAS;AACP,UAAI,YAAY,OAAO,KAAK,MAAM,aAAa;AAC7C,eAAO,CAAC,OAAO,CAAC,CAAC;AAAA,MACnB;AACA,aAAO,CAAC,QAAW,CAAC,IAAI,MAAM,sBAAsB,QAAQ,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC;AAAA,IACnF;AAAA,EACF;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/typeOf.ts","../../src/ifDefined.ts","../../src/ifTypeOf.ts","../../src/is.ts","../../src/isType.ts","../../src/Typed.ts","../../src/validateType.ts"],"sourcesContent":["import type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const typeOf = <T>(item: T): TypeOfTypes => {\n return Array.isArray(item) ? 'array' : typeof item\n}\n","import { typeOf } from './typeOf.ts'\n\nexport const ifDefined = <T>(value: T, func: (value: T) => void) => {\n switch (typeOf(value)) {\n case 'undefined':\n case 'null': {\n break\n }\n default: {\n func(value)\n return value\n }\n }\n}\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const ifTypeOf = <T, R>(typeName: TypeOfTypes, value: unknown, trueFunc: (value: T) => R, isFunc?: (value: T) => boolean) => {\n switch (typeOf(value)) {\n case typeName: {\n return !isFunc || isFunc(value as T) ? trueFunc(value as T) : undefined\n }\n }\n}\n","export function isUndefined(value: unknown): value is undefined {\n return value !== undefined\n}\n\nexport function isNull(value: unknown): value is null {\n return value === null\n}\n\nexport function isUndefinedOrNull(value: unknown): value is undefined | null {\n return isUndefined(value) || isNull(value)\n}\n\nexport function isBigInt(value: unknown): value is bigint {\n return typeof value === 'bigint'\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string'\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number'\n}\n\nexport function isObject(value: unknown): value is object\nexport function isObject<T extends object>(value: unknown): value is T\nexport function isObject<T extends object>(value: T): value is T\nexport function isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport function isArray(value: unknown): value is []\nexport function isArray<T extends []>(value: unknown): value is T\nexport function isArray<T extends []>(value: T): value is T\nexport function isArray(value: unknown): value is [] {\n return Array.isArray(value)\n}\n\nexport function isFunction(value: unknown): value is () => void {\n return typeof value === 'function'\n}\n\nexport function isSymbol(value: unknown): value is symbol {\n return typeof value === 'symbol'\n}\n\nexport function isEmptyObject(value: unknown): value is {} {\n return isObject(value) && Object.keys(value).length === 0\n}\n\nexport function isEmptyString(value: unknown): value is '' {\n return isString(value) && value.length === 0\n}\n\nexport function isEmptyArray(value: unknown): value is []\nexport function isEmptyArray<T extends []>(value: unknown): value is T\nexport function isEmptyArray<T extends []>(value: T): value is T\nexport function isEmptyArray(value: unknown): value is [] {\n return isArray(value) && value.length === 0\n}\n\nexport function isPopulatedArray(value: unknown): value is []\nexport function isPopulatedArray<T extends []>(value: unknown): value is T\nexport function isPopulatedArray<T extends []>(value: T): value is T\nexport function isPopulatedArray(value: unknown): value is [] {\n return isArray(value) && value.length > 0\n}\n\nexport function isEmpty(value: unknown): value is (undefined | null | '' | [] | {}) {\n return isUndefinedOrNull(value) || isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)\n}\n\nexport function isFalsy(value: unknown): value is false {\n return !value\n}\n\nexport function isTruthy(value: unknown): value is true {\n return !!value\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean'\n}\n\nexport function isDateString(value: unknown): value is string {\n return isString(value) && !Number.isNaN(Date.parse(value))\n}\n\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date\n}\n\nexport function isRegExp(value: unknown): value is RegExp {\n return value instanceof RegExp\n}\n\nexport function isError(value: unknown): value is Error {\n return value instanceof Error\n}\n\nexport function isPromise(value: unknown): value is Promise<unknown>\nexport function isPromise<T extends Promise<unknown>>(value: unknown): value is T\nexport function isPromise<T extends Promise<unknown>>(value: T): value is T\nexport function isPromise(value: unknown): value is Promise<unknown> {\n return value instanceof Promise\n}\n\nexport function isMap(value: unknown): value is Map<unknown, unknown>\nexport function isMap<K, V>(value: unknown): value is Map<K, V>\nexport function isMap<K, V>(value: Map<K, V>): value is Map<K, V>\nexport function isMap(value: unknown): value is Map<unknown, unknown> {\n return value instanceof Map\n}\n","import type { FieldType } from './ObjectTypeShape.ts'\n\nexport const isType = (value: unknown, expectedType: FieldType) => {\n const typeofValue = typeof value\n switch (expectedType) {\n case 'array': {\n return Array.isArray(value)\n }\n case 'null': {\n return value === null\n }\n case 'undefined': {\n return value === undefined\n }\n case 'object': {\n // nulls resolve to objects, so exclude them\n if (value === null) {\n return false\n }\n // arrays resolve to objects, so exclude them\n return typeofValue === 'object' && !Array.isArray(value)\n }\n default: {\n return typeofValue === expectedType\n }\n }\n}\n","import { isType } from './isType.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined\nexport type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol\nexport type TypedObject = { [key: TypedKey]: TypedValue } | object\nexport type TypedArray = TypedValue[]\n\nexport const isTypedKey = (value: unknown): value is TypedKey => {\n switch (typeof value) {\n case 'string':\n case 'bigint':\n case 'number':\n case 'symbol': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\nexport const isTypedValue = (value: unknown): value is TypedValue => {\n switch (typeof value) {\n case 'string':\n case 'number':\n case 'boolean': {\n return true\n }\n default: {\n return value === null || isTypedObject(value) || isTypedArray(value)\n }\n }\n}\n\nexport const isTypedArray = (value: unknown): value is TypedArray => {\n return Array.isArray(value) && !value.some(item => !isTypedValue(item))\n}\n\nexport const isValidTypedFieldPair = (pair: [key: unknown, value: unknown]): pair is [key: TypedKey, value: TypedValue] => {\n const [key, value] = pair\n return isTypedKey(key) && isTypedValue(value)\n}\n\nexport const isTypedObject = (value: unknown): value is TypedObject => {\n return (\n isType(value, 'object')\n // check if all keys are strings\n && !Object.entries(value as object).some(item => !isValidTypedFieldPair(item))\n )\n}\n\n// Object Type Test\n/*\ninterface TestObject {\n value: number\n}\n\nconst x: TestObject = { value: 1 }\n\nconst f = (p: TypedValue): void => {\n console.log(p)\n}\n\nf(x)\n*/\n","import { typeOf } from './typeOf.ts'\nimport type { TypeOfTypes } from './TypeOfTypes.ts'\n\nexport const validateType = <T>(typeName: TypeOfTypes, value: T, optional = false): [T | undefined, Error[]] => {\n switch (typeOf(value)) {\n case typeName: {\n return [value, []]\n }\n default: {\n if (optional && typeOf(value) === 'undefined') {\n return [value, []]\n }\n return [undefined, [new Error(`value type is not '${typeName}:${typeof value}'`)]]\n }\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare function isUndefined(value: unknown): value is undefined;
|
|
2
|
+
export declare function isNull(value: unknown): value is null;
|
|
3
|
+
export declare function isUndefinedOrNull(value: unknown): value is undefined | null;
|
|
4
|
+
export declare function isBigInt(value: unknown): value is bigint;
|
|
5
|
+
export declare function isString(value: unknown): value is string;
|
|
6
|
+
export declare function isNumber(value: unknown): value is number;
|
|
7
|
+
export declare function isObject(value: unknown): value is object;
|
|
8
|
+
export declare function isObject<T extends object>(value: unknown): value is T;
|
|
9
|
+
export declare function isObject<T extends object>(value: T): value is T;
|
|
10
|
+
export declare function isArray(value: unknown): value is [];
|
|
11
|
+
export declare function isArray<T extends []>(value: unknown): value is T;
|
|
12
|
+
export declare function isArray<T extends []>(value: T): value is T;
|
|
13
|
+
export declare function isFunction(value: unknown): value is () => void;
|
|
14
|
+
export declare function isSymbol(value: unknown): value is symbol;
|
|
15
|
+
export declare function isEmptyObject(value: unknown): value is {};
|
|
16
|
+
export declare function isEmptyString(value: unknown): value is '';
|
|
17
|
+
export declare function isEmptyArray(value: unknown): value is [];
|
|
18
|
+
export declare function isEmptyArray<T extends []>(value: unknown): value is T;
|
|
19
|
+
export declare function isEmptyArray<T extends []>(value: T): value is T;
|
|
20
|
+
export declare function isPopulatedArray(value: unknown): value is [];
|
|
21
|
+
export declare function isPopulatedArray<T extends []>(value: unknown): value is T;
|
|
22
|
+
export declare function isPopulatedArray<T extends []>(value: T): value is T;
|
|
23
|
+
export declare function isEmpty(value: unknown): value is (undefined | null | '' | [] | {});
|
|
24
|
+
export declare function isFalsy(value: unknown): value is false;
|
|
25
|
+
export declare function isTruthy(value: unknown): value is true;
|
|
26
|
+
export declare function isBoolean(value: unknown): value is boolean;
|
|
27
|
+
export declare function isDateString(value: unknown): value is string;
|
|
28
|
+
export declare function isDate(value: unknown): value is Date;
|
|
29
|
+
export declare function isRegExp(value: unknown): value is RegExp;
|
|
30
|
+
export declare function isError(value: unknown): value is Error;
|
|
31
|
+
export declare function isPromise(value: unknown): value is Promise<unknown>;
|
|
32
|
+
export declare function isPromise<T extends Promise<unknown>>(value: unknown): value is T;
|
|
33
|
+
export declare function isPromise<T extends Promise<unknown>>(value: T): value is T;
|
|
34
|
+
export declare function isMap(value: unknown): value is Map<unknown, unknown>;
|
|
35
|
+
export declare function isMap<K, V>(value: unknown): value is Map<K, V>;
|
|
36
|
+
export declare function isMap<K, V>(value: Map<K, V>): value is Map<K, V>;
|
|
37
|
+
//# sourceMappingURL=is.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../../src/is.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/typeof",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.9.0",
|
|
4
4
|
"description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typeof",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"module": "dist/neutral/index.mjs",
|
|
37
37
|
"types": "dist/types/index.d.ts",
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@xylabs/ts-scripts-yarn3": "^6.
|
|
40
|
-
"@xylabs/tsconfig": "^6.
|
|
39
|
+
"@xylabs/ts-scripts-yarn3": "^6.5.5",
|
|
40
|
+
"@xylabs/tsconfig": "^6.5.5",
|
|
41
41
|
"typescript": "^5.8.3"
|
|
42
42
|
},
|
|
43
43
|
"engines": {
|
package/src/index.ts
CHANGED
package/src/is.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
export function isUndefined(value: unknown): value is undefined {
|
|
2
|
+
return value !== undefined
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function isNull(value: unknown): value is null {
|
|
6
|
+
return value === null
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isUndefinedOrNull(value: unknown): value is undefined | null {
|
|
10
|
+
return isUndefined(value) || isNull(value)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function isBigInt(value: unknown): value is bigint {
|
|
14
|
+
return typeof value === 'bigint'
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function isString(value: unknown): value is string {
|
|
18
|
+
return typeof value === 'string'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function isNumber(value: unknown): value is number {
|
|
22
|
+
return typeof value === 'number'
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function isObject(value: unknown): value is object
|
|
26
|
+
export function isObject<T extends object>(value: unknown): value is T
|
|
27
|
+
export function isObject<T extends object>(value: T): value is T
|
|
28
|
+
export function isObject(value: unknown): value is object {
|
|
29
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function isArray(value: unknown): value is []
|
|
33
|
+
export function isArray<T extends []>(value: unknown): value is T
|
|
34
|
+
export function isArray<T extends []>(value: T): value is T
|
|
35
|
+
export function isArray(value: unknown): value is [] {
|
|
36
|
+
return Array.isArray(value)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function isFunction(value: unknown): value is () => void {
|
|
40
|
+
return typeof value === 'function'
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function isSymbol(value: unknown): value is symbol {
|
|
44
|
+
return typeof value === 'symbol'
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function isEmptyObject(value: unknown): value is {} {
|
|
48
|
+
return isObject(value) && Object.keys(value).length === 0
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function isEmptyString(value: unknown): value is '' {
|
|
52
|
+
return isString(value) && value.length === 0
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function isEmptyArray(value: unknown): value is []
|
|
56
|
+
export function isEmptyArray<T extends []>(value: unknown): value is T
|
|
57
|
+
export function isEmptyArray<T extends []>(value: T): value is T
|
|
58
|
+
export function isEmptyArray(value: unknown): value is [] {
|
|
59
|
+
return isArray(value) && value.length === 0
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function isPopulatedArray(value: unknown): value is []
|
|
63
|
+
export function isPopulatedArray<T extends []>(value: unknown): value is T
|
|
64
|
+
export function isPopulatedArray<T extends []>(value: T): value is T
|
|
65
|
+
export function isPopulatedArray(value: unknown): value is [] {
|
|
66
|
+
return isArray(value) && value.length > 0
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function isEmpty(value: unknown): value is (undefined | null | '' | [] | {}) {
|
|
70
|
+
return isUndefinedOrNull(value) || isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function isFalsy(value: unknown): value is false {
|
|
74
|
+
return !value
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function isTruthy(value: unknown): value is true {
|
|
78
|
+
return !!value
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function isBoolean(value: unknown): value is boolean {
|
|
82
|
+
return typeof value === 'boolean'
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function isDateString(value: unknown): value is string {
|
|
86
|
+
return isString(value) && !Number.isNaN(Date.parse(value))
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function isDate(value: unknown): value is Date {
|
|
90
|
+
return value instanceof Date
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function isRegExp(value: unknown): value is RegExp {
|
|
94
|
+
return value instanceof RegExp
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function isError(value: unknown): value is Error {
|
|
98
|
+
return value instanceof Error
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function isPromise(value: unknown): value is Promise<unknown>
|
|
102
|
+
export function isPromise<T extends Promise<unknown>>(value: unknown): value is T
|
|
103
|
+
export function isPromise<T extends Promise<unknown>>(value: T): value is T
|
|
104
|
+
export function isPromise(value: unknown): value is Promise<unknown> {
|
|
105
|
+
return value instanceof Promise
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function isMap(value: unknown): value is Map<unknown, unknown>
|
|
109
|
+
export function isMap<K, V>(value: unknown): value is Map<K, V>
|
|
110
|
+
export function isMap<K, V>(value: Map<K, V>): value is Map<K, V>
|
|
111
|
+
export function isMap(value: unknown): value is Map<unknown, unknown> {
|
|
112
|
+
return value instanceof Map
|
|
113
|
+
}
|