@xylabs/typeof 5.0.79 → 5.0.81

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/README.md CHANGED
@@ -23,6 +23,8 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
23
23
 
24
24
  ## Type Aliases
25
25
 
26
+ - [Brand](#type-aliases/Brand)
27
+ - [IdentityFunction](#type-aliases/IdentityFunction)
26
28
  - [FieldType](#type-aliases/FieldType)
27
29
  - [ObjectTypeShape](#type-aliases/ObjectTypeShape)
28
30
  - [TypeOfTypes](#type-aliases/TypeOfTypes)
@@ -73,7 +75,6 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
73
75
  - [isSet](#functions/isSet)
74
76
  - [isWeakMap](#functions/isWeakMap)
75
77
  - [isWeakSet](#functions/isWeakSet)
76
- - [isArrayBuffer](#functions/isArrayBuffer)
77
78
  - [isDataView](#functions/isDataView)
78
79
  - [isBlob](#functions/isBlob)
79
80
  - [isFile](#functions/isFile)
@@ -90,7 +91,7 @@ Base functionality used throughout XY Labs TypeScript/JavaScript libraries
90
91
  ***
91
92
 
92
93
  ```ts
93
- function ifDefined<T>(value, func): undefined | T;
94
+ function ifDefined<T>(value, func): T | undefined;
94
95
  ```
95
96
 
96
97
  ## Type Parameters
@@ -111,7 +112,7 @@ function ifDefined<T>(value, func): undefined | T;
111
112
 
112
113
  ## Returns
113
114
 
114
- `undefined` \| `T`
115
+ `T` \| `undefined`
115
116
 
116
117
  ### <a id="ifTypeOf"></a>ifTypeOf
117
118
 
@@ -124,7 +125,7 @@ function ifTypeOf<T, R>(
124
125
  typeName,
125
126
  value,
126
127
  trueFunc,
127
- isFunc?): undefined | R;
128
+ isFunc?): R | undefined;
128
129
  ```
129
130
 
130
131
  ## Type Parameters
@@ -157,7 +158,7 @@ function ifTypeOf<T, R>(
157
158
 
158
159
  ## Returns
159
160
 
160
- `undefined` \| `R`
161
+ `R` \| `undefined`
161
162
 
162
163
  ### <a id="isArray"></a>isArray
163
164
 
@@ -168,7 +169,7 @@ function ifTypeOf<T, R>(
168
169
  ## Call Signature
169
170
 
170
171
  ```ts
171
- function isArray(value): value is [];
172
+ function isArray(value): value is readonly unknown[];
172
173
  ```
173
174
 
174
175
  ### Parameters
@@ -179,64 +180,20 @@ function isArray(value): value is [];
179
180
 
180
181
  ### Returns
181
182
 
182
- `value is []`
183
+ `value is readonly unknown[]`
183
184
 
184
185
  ## Call Signature
185
186
 
186
187
  ```ts
187
- function isArray<T>(value): value is Extract<T, unknown[]>;
188
+ function isArray<T>(value): value is Extract<T, readonly unknown[]>;
188
189
  ```
189
190
 
190
191
  ### Type Parameters
191
192
 
192
193
  ### T
193
194
 
194
- `T` *extends* \[\]
195
-
196
- ### Parameters
197
-
198
- ### value
199
-
200
195
  `T`
201
196
 
202
- ### Returns
203
-
204
- `value is Extract<T, unknown[]>`
205
-
206
- ### <a id="isArrayBuffer"></a>isArrayBuffer
207
-
208
- [**@xylabs/typeof**](#../README)
209
-
210
- ***
211
-
212
- ## Call Signature
213
-
214
- ```ts
215
- function isArrayBuffer(value): value is ArrayBuffer;
216
- ```
217
-
218
- ### Parameters
219
-
220
- ### value
221
-
222
- `unknown`
223
-
224
- ### Returns
225
-
226
- `value is ArrayBuffer`
227
-
228
- ## Call Signature
229
-
230
- ```ts
231
- function isArrayBuffer<T>(value): value is Extract<T, ArrayBuffer>;
232
- ```
233
-
234
- ### Type Parameters
235
-
236
- ### T
237
-
238
- `T` *extends* `ArrayBuffer`
239
-
240
197
  ### Parameters
241
198
 
242
199
  ### value
@@ -245,7 +202,7 @@ function isArrayBuffer<T>(value): value is Extract<T, ArrayBuffer>;
245
202
 
246
203
  ### Returns
247
204
 
248
- `value is Extract<T, ArrayBuffer>`
205
+ `value is Extract<T, readonly unknown[]>`
249
206
 
250
207
  ### <a id="isArrayBufferView"></a>isArrayBufferView
251
208
 
@@ -588,7 +545,7 @@ function isDefined<T>(value): value is Exclude<T, undefined>;
588
545
  ***
589
546
 
590
547
  ```ts
591
- function isDefinedNotNull<T>(value): value is Exclude<T, undefined | null>;
548
+ function isDefinedNotNull<T>(value): value is Exclude<T, null | undefined>;
592
549
  ```
593
550
 
594
551
  ## Type Parameters
@@ -605,7 +562,7 @@ function isDefinedNotNull<T>(value): value is Exclude<T, undefined | null>;
605
562
 
606
563
  ## Returns
607
564
 
608
- value is Exclude\<T, undefined \| null\>
565
+ value is Exclude\<T, null \| undefined\>
609
566
 
610
567
  ### <a id="isEmpty"></a>isEmpty
611
568
 
@@ -880,7 +837,7 @@ function isError<T>(value): value is Extract<T, Error>;
880
837
  ## Call Signature
881
838
 
882
839
  ```ts
883
- function isFalsy<T>(value): value is Extract<T, undefined | null | false | "" | 0 | 0n>;
840
+ function isFalsy<T>(value): value is Extract<T, false | "" | 0 | 0n | null | undefined>;
884
841
  ```
885
842
 
886
843
  ### Type Parameters
@@ -897,7 +854,7 @@ function isFalsy<T>(value): value is Extract<T, undefined | null | false | "" |
897
854
 
898
855
  ### Returns
899
856
 
900
- value is Extract\<T, undefined \| null \| false \| "" \| 0 \| 0n\>
857
+ value is Extract\<T, false \| "" \| 0 \| 0n \| null \| undefined\>
901
858
 
902
859
  ## Call Signature
903
860
 
@@ -1312,7 +1269,7 @@ function isObject<T>(value): value is Extract<T, object>;
1312
1269
  ## Call Signature
1313
1270
 
1314
1271
  ```ts
1315
- function isPopulatedArray(value): value is [];
1272
+ function isPopulatedArray(value): value is readonly unknown[];
1316
1273
  ```
1317
1274
 
1318
1275
  ### Parameters
@@ -1323,12 +1280,12 @@ function isPopulatedArray(value): value is [];
1323
1280
 
1324
1281
  ### Returns
1325
1282
 
1326
- `value is []`
1283
+ `value is readonly unknown[]`
1327
1284
 
1328
1285
  ## Call Signature
1329
1286
 
1330
1287
  ```ts
1331
- function isPopulatedArray<T>(value): value is Extract<T, unknown[]>;
1288
+ function isPopulatedArray<T>(value): value is Extract<T, readonly unknown[]>;
1332
1289
  ```
1333
1290
 
1334
1291
  ### Type Parameters
@@ -1345,7 +1302,7 @@ function isPopulatedArray<T>(value): value is Extract<T, unknown[]>;
1345
1302
 
1346
1303
  ### Returns
1347
1304
 
1348
- `value is Extract<T, unknown[]>`
1305
+ `value is Extract<T, readonly unknown[]>`
1349
1306
 
1350
1307
  ### <a id="isPromise"></a>isPromise
1351
1308
 
@@ -1620,7 +1577,7 @@ function isSymbol<T>(value): value is Extract<T, symbol>;
1620
1577
  ## Call Signature
1621
1578
 
1622
1579
  ```ts
1623
- function isTruthy<T>(value): value is Exclude<T, undefined | null | false | "" | 0 | 0n>;
1580
+ function isTruthy<T>(value): value is Exclude<T, false | "" | 0 | 0n | null | undefined>;
1624
1581
  ```
1625
1582
 
1626
1583
  ### Type Parameters
@@ -1637,7 +1594,7 @@ function isTruthy<T>(value): value is Exclude<T, undefined | null | false | "" |
1637
1594
 
1638
1595
  ### Returns
1639
1596
 
1640
- value is Exclude\<T, undefined \| null \| false \| "" \| 0 \| 0n\>
1597
+ value is Exclude\<T, false \| "" \| 0 \| 0n \| null \| undefined\>
1641
1598
 
1642
1599
  ## Call Signature
1643
1600
 
@@ -1928,7 +1885,7 @@ function isUndefined<T>(value): value is Extract<T, undefined>;
1928
1885
  ## Call Signature
1929
1886
 
1930
1887
  ```ts
1931
- function isUndefinedOrNull(value): value is undefined | null;
1888
+ function isUndefinedOrNull(value): value is null | undefined;
1932
1889
  ```
1933
1890
 
1934
1891
  ### Parameters
@@ -1939,12 +1896,12 @@ function isUndefinedOrNull(value): value is undefined | null;
1939
1896
 
1940
1897
  ### Returns
1941
1898
 
1942
- value is undefined \| null
1899
+ value is null \| undefined
1943
1900
 
1944
1901
  ## Call Signature
1945
1902
 
1946
1903
  ```ts
1947
- function isUndefinedOrNull<T>(value): value is Extract<T, undefined | null>;
1904
+ function isUndefinedOrNull<T>(value): value is Extract<T, null | undefined>;
1948
1905
  ```
1949
1906
 
1950
1907
  ### Type Parameters
@@ -1961,7 +1918,7 @@ function isUndefinedOrNull<T>(value): value is Extract<T, undefined | null>;
1961
1918
 
1962
1919
  ### Returns
1963
1920
 
1964
- value is Extract\<T, undefined \| null\>
1921
+ value is Extract\<T, null \| undefined\>
1965
1922
 
1966
1923
  ### <a id="isValidTypedFieldPair"></a>isValidTypedFieldPair
1967
1924
 
@@ -2119,7 +2076,7 @@ function typeOf<T>(item): TypeOfTypes;
2119
2076
  function validateType<T>(
2120
2077
  typeName,
2121
2078
  value,
2122
- optional): [undefined | T, Error[]];
2079
+ optional?): [T | undefined, Error[]];
2123
2080
  ```
2124
2081
 
2125
2082
  ## Type Parameters
@@ -2138,13 +2095,13 @@ function validateType<T>(
2138
2095
 
2139
2096
  `T`
2140
2097
 
2141
- ### optional
2098
+ ### optional?
2142
2099
 
2143
2100
  `boolean` = `false`
2144
2101
 
2145
2102
  ## Returns
2146
2103
 
2147
- \[`undefined` \| `T`, `Error`[]\]
2104
+ \[`T` \| `undefined`, `Error`[]\]
2148
2105
 
2149
2106
  ### type-aliases
2150
2107
 
@@ -2168,6 +2125,26 @@ type AnyFunction = (...args) => unknown;
2168
2125
 
2169
2126
  `unknown`
2170
2127
 
2128
+ ### <a id="Brand"></a>Brand
2129
+
2130
+ [**@xylabs/typeof**](#../README)
2131
+
2132
+ ***
2133
+
2134
+ ```ts
2135
+ type Brand<T, B> = T & { [K in keyof B]: B[K] };
2136
+ ```
2137
+
2138
+ ## Type Parameters
2139
+
2140
+ ### T
2141
+
2142
+ `T`
2143
+
2144
+ ### B
2145
+
2146
+ `B`
2147
+
2171
2148
  ### <a id="FieldType"></a>FieldType
2172
2149
 
2173
2150
  [**@xylabs/typeof**](#../README)
@@ -2186,6 +2163,32 @@ type FieldType =
2186
2163
  | "function";
2187
2164
  ```
2188
2165
 
2166
+ ### <a id="IdentityFunction"></a>IdentityFunction
2167
+
2168
+ [**@xylabs/typeof**](#../README)
2169
+
2170
+ ***
2171
+
2172
+ ```ts
2173
+ type IdentityFunction<T> = (value) => value is T;
2174
+ ```
2175
+
2176
+ ## Type Parameters
2177
+
2178
+ ### T
2179
+
2180
+ `T`
2181
+
2182
+ ## Parameters
2183
+
2184
+ ### value
2185
+
2186
+ `unknown`
2187
+
2188
+ ## Returns
2189
+
2190
+ `value is T`
2191
+
2189
2192
  ### <a id="ObjectTypeShape"></a>ObjectTypeShape
2190
2193
 
2191
2194
  [**@xylabs/typeof**](#../README)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/typeof",
3
- "version": "5.0.79",
3
+ "version": "5.0.81",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "keywords": [
6
6
  "typeof",
@@ -29,24 +29,21 @@
29
29
  "exports": {
30
30
  ".": {
31
31
  "types": "./dist/neutral/index.d.ts",
32
- "source": "./src/index.ts",
33
32
  "default": "./dist/neutral/index.mjs"
34
33
  },
35
34
  "./package.json": "./package.json"
36
35
  },
37
36
  "module": "./dist/neutral/index.mjs",
38
- "source": "./src/index.ts",
39
37
  "types": "./dist/neutral/index.d.ts",
40
38
  "files": [
41
39
  "dist",
42
- "src",
43
40
  "!**/*.bench.*",
44
41
  "!**/*.spec.*",
45
42
  "!**/*.test.*"
46
43
  ],
47
44
  "devDependencies": {
48
- "@xylabs/ts-scripts-yarn3": "~7.3.2",
49
- "@xylabs/tsconfig": "~7.3.2",
45
+ "@xylabs/ts-scripts-yarn3": "~7.4.11",
46
+ "@xylabs/tsconfig": "~7.4.11",
50
47
  "typescript": "~5.9.3",
51
48
  "vitest": "~4.0.18"
52
49
  },
package/src/Brand.ts DELETED
@@ -1 +0,0 @@
1
- export type Brand<T, B> = T & { [K in keyof B]: B[K] }
@@ -1 +0,0 @@
1
- export type IdentityFunction<T> = (value: unknown) => value is T
@@ -1,3 +0,0 @@
1
- export type FieldType = 'string' | 'number' | 'object' | 'symbol' | 'undefined' | 'null' | 'array' | 'function'
2
-
3
- export type ObjectTypeShape = Record<string | number | symbol, FieldType>
@@ -1 +0,0 @@
1
- export type TypeOfTypes = 'string' | 'number' | 'object' | 'array' | 'buffer' | 'null' | 'undefined' | 'bigint' | 'boolean' | 'function' | 'symbol'
package/src/Typed.ts DELETED
@@ -1,66 +0,0 @@
1
- import { isType } from './isType.ts'
2
-
3
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
4
- export type TypedValue = bigint | string | number | boolean | null | TypedObject | TypedArray | Function | symbol | undefined
5
- export type TypedKey<T extends string | void = void> = T extends string ? T : string | number | symbol
6
- export type TypedObject = { [key: TypedKey]: TypedValue } | object
7
- export type TypedArray = TypedValue[]
8
-
9
- export const isTypedKey = (value: unknown): value is TypedKey => {
10
- switch (typeof value) {
11
- case 'string':
12
- case 'bigint':
13
- case 'number':
14
- case 'symbol': {
15
- return true
16
- }
17
- default: {
18
- return false
19
- }
20
- }
21
- }
22
-
23
- export const isTypedValue = (value: unknown): value is TypedValue => {
24
- switch (typeof value) {
25
- case 'string':
26
- case 'number':
27
- case 'boolean': {
28
- return true
29
- }
30
- default: {
31
- return value === null || isTypedObject(value) || isTypedArray(value)
32
- }
33
- }
34
- }
35
-
36
- export const isTypedArray = (value: unknown): value is TypedArray => {
37
- return Array.isArray(value) && !value.some(item => !isTypedValue(item))
38
- }
39
-
40
- export const isValidTypedFieldPair = (pair: [key: unknown, value: unknown]): pair is [key: TypedKey, value: TypedValue] => {
41
- const [key, value] = pair
42
- return isTypedKey(key) && isTypedValue(value)
43
- }
44
-
45
- export const isTypedObject = (value: unknown): value is TypedObject => {
46
- return (
47
- isType(value, 'object')
48
- // check if all keys are strings
49
- && !Object.entries(value as object).some(item => !isValidTypedFieldPair(item))
50
- )
51
- }
52
-
53
- // Object Type Test
54
- /*
55
- interface TestObject {
56
- value: number
57
- }
58
-
59
- const x: TestObject = { value: 1 }
60
-
61
- const f = (p: TypedValue): void => {
62
- console.log(p)
63
- }
64
-
65
- f(x)
66
- */
package/src/ifDefined.ts DELETED
@@ -1,14 +0,0 @@
1
- import { typeOf } from './typeOf.ts'
2
-
3
- export const ifDefined = <T>(value: T, func: (value: T) => void) => {
4
- switch (typeOf(value)) {
5
- case 'undefined':
6
- case 'null': {
7
- break
8
- }
9
- default: {
10
- func(value)
11
- return value
12
- }
13
- }
14
- }
package/src/ifTypeOf.ts DELETED
@@ -1,10 +0,0 @@
1
- import { typeOf } from './typeOf.ts'
2
- import type { TypeOfTypes } from './TypeOfTypes.ts'
3
-
4
- export const ifTypeOf = <T, R>(typeName: TypeOfTypes, value: unknown, trueFunc: (value: T) => R, isFunc?: (value: T) => boolean) => {
5
- switch (typeOf(value)) {
6
- case typeName: {
7
- return !isFunc || isFunc(value as T) ? trueFunc(value as T) : undefined
8
- }
9
- }
10
- }
package/src/index.ts DELETED
@@ -1,11 +0,0 @@
1
- export * from './Brand.ts'
2
- export * from './IdentityFunction.ts'
3
- export * from './ifDefined.ts'
4
- export * from './ifTypeOf.ts'
5
- export * from './is.ts'
6
- export * from './isType.ts'
7
- export * from './ObjectTypeShape.ts'
8
- export * from './Typed.ts'
9
- export * from './typeOf.ts'
10
- export * from './TypeOfTypes.ts'
11
- export * from './validateType.ts'
package/src/is.ts DELETED
@@ -1,217 +0,0 @@
1
- export type AnyFunction = (...args: unknown[]) => unknown
2
- export type RecordKey = string | number | symbol
3
-
4
- export function isUndefined(value: unknown): value is undefined
5
- export function isUndefined<T>(value: T): value is Extract<T, undefined>
6
- export function isUndefined(value: unknown): value is undefined {
7
- return value === undefined
8
- }
9
-
10
- export function isDefined<T>(value: T): value is Exclude<T, undefined> {
11
- return !isUndefined(value)
12
- }
13
-
14
- export function isNull(value: unknown): value is null
15
- export function isNull<T>(value: T): value is Extract<T, null>
16
- export function isNull(value: unknown): value is null {
17
- return value === null
18
- }
19
-
20
- export function isDefinedNotNull<T>(value: T): value is Exclude<T, undefined | null> {
21
- return !isUndefined(value) && !isNull(value)
22
- }
23
-
24
- export function isUndefinedOrNull(value: unknown): value is undefined | null
25
- export function isUndefinedOrNull<T>(value: T): value is Extract<T, undefined | null>
26
- export function isUndefinedOrNull(value: unknown): value is undefined | null {
27
- return isUndefined(value) || isNull(value)
28
- }
29
-
30
- export function isBigInt(value: unknown): value is bigint
31
- export function isBigInt<T extends bigint>(value: T): value is Extract<T, bigint>
32
- export function isBigInt(value: unknown): value is bigint {
33
- return typeof value === 'bigint'
34
- }
35
-
36
- export function isString(value: unknown): value is string
37
- export function isString<T extends string>(value: T): value is Extract<T, string>
38
- export function isString(value: unknown): value is string {
39
- return typeof value === 'string'
40
- }
41
-
42
- export function isNumber(value: unknown): value is number
43
- export function isNumber<T extends number>(value: T): value is Extract<T, number>
44
- export function isNumber(value: unknown): value is number {
45
- return typeof value === 'number'
46
- }
47
-
48
- export function isObject(value: unknown): value is object
49
- export function isObject<T extends object>(value: T): value is Extract<T, object>
50
- export function isObject(value: unknown): value is object {
51
- return (typeof value === 'object') && (value !== null) && !Array.isArray(value)
52
- }
53
-
54
- export function isArray(value: unknown): value is readonly unknown[]
55
- export function isArray<T>(value: T): value is Extract<T, readonly unknown[]>
56
- export function isArray(value: unknown): value is readonly unknown[] {
57
- return Array.isArray(value)
58
- }
59
-
60
- export function isFunction(value: unknown): value is AnyFunction
61
- export function isFunction<T extends AnyFunction>(value: T): value is Extract<T, AnyFunction>
62
- export function isFunction(value: unknown): value is AnyFunction {
63
- return typeof value === 'function'
64
- }
65
-
66
- export function isSymbol(value: unknown): value is symbol
67
- export function isSymbol<T extends symbol>(value: T): value is Extract<T, symbol>
68
- export function isSymbol(value: unknown): value is symbol {
69
- return typeof value === 'symbol'
70
- }
71
-
72
- export function isEmptyObject(value: unknown): value is {}
73
- export function isEmptyObject<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>
74
- export function isEmptyObject(value: unknown): value is {} {
75
- return isObject(value) && Object.keys(value).length === 0
76
- }
77
-
78
- export function isEmptyString(value: unknown): value is ''
79
- export function isEmptyString<T extends string>(value: T): value is Extract<T, ''>
80
- export function isEmptyString(value: unknown): value is '' {
81
- return isString(value) && value.length === 0
82
- }
83
-
84
- export function isEmptyArray(value: unknown): value is []
85
- export function isEmptyArray<T extends Array<unknown>>(value: T): value is Extract<T, Array<unknown>>
86
- export function isEmptyArray(value: unknown): value is [] {
87
- return isArray(value) && value.length === 0
88
- }
89
-
90
- export function isPopulatedArray(value: unknown): value is readonly unknown[]
91
- export function isPopulatedArray<T extends Array<unknown>>(value: T): value is Extract<T, readonly unknown[]>
92
- export function isPopulatedArray(value: unknown): value is readonly unknown[] {
93
- return isArray(value) && value.length > 0
94
- }
95
-
96
- export function isEmpty<T>(value: unknown): value is T
97
- export function isEmpty<K extends RecordKey, V, T extends Record<K, V>>(value: T): value is Extract<T, Record<K, never>>
98
- export function isEmpty<T extends Array<unknown>>(value: T): value is Extract<T, Array<never>>
99
- export function isEmpty<T>(value: unknown): value is T {
100
- return isEmptyString(value) || isEmptyArray(value) || isEmptyObject(value)
101
- }
102
-
103
- export function isFalsy<T>(value: T): value is Extract<T, 0 | null | undefined | false | '' | 0n>
104
- export function isFalsy<T extends boolean>(value: T): value is Extract<T, false>
105
- export function isFalsy<T extends number>(value: T): value is Extract<T, 0>
106
- export function isFalsy<T extends bigint>(value: T): value is Extract<T, 0n>
107
- export function isFalsy<T extends null>(value: T): value is Extract<T, null>
108
- export function isFalsy<T extends undefined>(value: T): value is Extract<T, undefined>
109
- export function isFalsy<T extends string>(value: T): value is Extract<T, ''>
110
- export function isFalsy<T>(value: T): value is T {
111
- return !value
112
- }
113
-
114
- export function isTruthy<T>(value: T): value is Exclude<T, 0 | null | undefined | false | '' | 0n>
115
- export function isTruthy<T extends boolean>(value: T): value is Extract<T, true>
116
- export function isTruthy<T extends number>(value: T): value is Extract<T, number>
117
- export function isTruthy<T extends bigint>(value: T): value is Extract<T, bigint>
118
- export function isTruthy<T extends null>(value: T): value is Extract<T, null>
119
- export function isTruthy<T extends undefined>(value: T): value is Extract<T, undefined>
120
- export function isTruthy<T extends string>(value: T): value is Extract<T, string>
121
- export function isTruthy<T>(value: T): value is T {
122
- return !!value
123
- }
124
-
125
- export function isBoolean(value: unknown): value is boolean
126
- export function isBoolean<T extends boolean>(value: T): value is Extract<T, boolean>
127
- export function isBoolean(value: unknown): value is boolean {
128
- return typeof value === 'boolean'
129
- }
130
-
131
- export function isDateString(value: unknown): value is string
132
- export function isDateString<T>(value: T): value is Extract<T, string>
133
- export function isDateString(value: unknown): value is string {
134
- return isString(value) && !Number.isNaN(Date.parse(value))
135
- }
136
-
137
- export function isDate(value: unknown): value is Date
138
- export function isDate<T>(value: T): value is Extract<T, Date>
139
- export function isDate(value: unknown): value is Date {
140
- return value instanceof Date
141
- }
142
-
143
- export function isRegExp(value: unknown): value is RegExp
144
- export function isRegExp<T extends RegExp>(value: T): value is Extract<T, RegExp>
145
- export function isRegExp(value: unknown): value is RegExp {
146
- return value instanceof RegExp
147
- }
148
-
149
- export function isError(value: unknown): value is Error
150
- export function isError<T>(value: T): value is Extract<T, Error>
151
- export function isError(value: unknown): value is Error {
152
- return value instanceof Error
153
- }
154
-
155
- export function isPromise(value: unknown): value is Promise<unknown>
156
- export function isPromise<T>(value: T): value is Extract<T, Promise<unknown>>
157
- export function isPromise(value: unknown): value is Promise<unknown> {
158
- return value instanceof Promise
159
- }
160
-
161
- export function isPromiseLike(value: unknown): value is Promise<unknown>
162
- export function isPromiseLike<T>(value: T): value is Extract<T, Promise<unknown>>
163
- export function isPromiseLike(value: unknown): value is Promise<unknown> {
164
- return (
165
- typeof value === 'object'
166
- && value !== null
167
- && typeof (value as Record<string, unknown>).then === 'function'
168
- )
169
- }
170
-
171
- export function isMap(value: unknown): value is Map<unknown, unknown>
172
- export function isMap<K, V, T extends Map<K, V>>(value: T): value is Extract<T, Map<K, V>>
173
- export function isMap(value: unknown): value is Map<unknown, unknown> {
174
- return value instanceof Map
175
- }
176
-
177
- export function isArrayBufferView(value: unknown): value is ArrayBufferView
178
- export function isArrayBufferView<T extends ArrayBufferView>(value: T): value is Extract<T, ArrayBufferView>
179
- export function isArrayBufferView(value: unknown): value is ArrayBufferView {
180
- return ArrayBuffer.isView(value)
181
- }
182
-
183
- export function isSet(value: unknown): value is Set<unknown>
184
- export function isSet<T extends Set<unknown>>(value: unknown | Set<T>): value is Extract<T, Set<unknown>>
185
- export function isSet(value: unknown): value is Set<unknown> {
186
- return value instanceof Set
187
- }
188
-
189
- export function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown>
190
- export function isWeakMap<K extends WeakKey, V, T extends WeakMap<K, V>>(value: T): value is Extract<T, WeakMap<K, V>>
191
- export function isWeakMap(value: unknown): value is WeakMap<WeakKey, unknown> {
192
- return value instanceof WeakMap
193
- }
194
-
195
- export function isWeakSet(value: unknown): value is WeakSet<WeakKey>
196
- export function isWeakSet<K extends WeakKey, T extends WeakSet<K>>(value: T): value is Extract<T, WeakSet<K>>
197
- export function isWeakSet(value: unknown): value is WeakSet<WeakKey> {
198
- return value instanceof WeakSet
199
- }
200
-
201
- export function isDataView(value: unknown): value is DataView
202
- export function isDataView<T>(value: T): value is Extract<T, DataView>
203
- export function isDataView(value: unknown): value is DataView {
204
- return value instanceof DataView
205
- }
206
-
207
- export function isBlob(value: unknown): value is Blob
208
- export function isBlob<T extends Blob>(value: T): value is Extract<T, Blob>
209
- export function isBlob(value: unknown): value is Blob {
210
- return typeof Blob !== 'undefined' && value instanceof Blob
211
- }
212
-
213
- export function isFile(value: unknown): value is File
214
- export function isFile<T extends File>(value: T): value is Extract<T, File>
215
- export function isFile(value: unknown): value is File {
216
- return typeof File !== 'undefined' && value instanceof File
217
- }
package/src/isType.ts DELETED
@@ -1,27 +0,0 @@
1
- import type { FieldType } from './ObjectTypeShape.ts'
2
-
3
- export const isType = (value: unknown, expectedType: FieldType) => {
4
- const typeofValue = typeof value
5
- switch (expectedType) {
6
- case 'array': {
7
- return Array.isArray(value)
8
- }
9
- case 'null': {
10
- return value === null
11
- }
12
- case 'undefined': {
13
- return value === undefined
14
- }
15
- case 'object': {
16
- // nulls resolve to objects, so exclude them
17
- if (value === null) {
18
- return false
19
- }
20
- // arrays resolve to objects, so exclude them
21
- return typeofValue === 'object' && !Array.isArray(value)
22
- }
23
- default: {
24
- return typeofValue === expectedType
25
- }
26
- }
27
- }
package/src/typeOf.ts DELETED
@@ -1,5 +0,0 @@
1
- import type { TypeOfTypes } from './TypeOfTypes.ts'
2
-
3
- export const typeOf = <T>(item: T): TypeOfTypes => {
4
- return Array.isArray(item) ? 'array' : typeof item
5
- }
@@ -1,16 +0,0 @@
1
- import { typeOf } from './typeOf.ts'
2
- import type { TypeOfTypes } from './TypeOfTypes.ts'
3
-
4
- export const validateType = <T>(typeName: TypeOfTypes, value: T, optional = false): [T | undefined, Error[]] => {
5
- switch (typeOf(value)) {
6
- case typeName: {
7
- return [value, []]
8
- }
9
- default: {
10
- if (optional && typeOf(value) === 'undefined') {
11
- return [value, []]
12
- }
13
- return [undefined, [new Error(`value type is not '${typeName}:${typeof value}'`)]]
14
- }
15
- }
16
- }