@xylabs/typeof 5.0.80 → 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 +73 -70
- package/package.json +3 -6
- package/src/Brand.ts +0 -1
- package/src/IdentityFunction.ts +0 -1
- package/src/ObjectTypeShape.ts +0 -3
- package/src/TypeOfTypes.ts +0 -1
- package/src/Typed.ts +0 -66
- package/src/ifDefined.ts +0 -14
- package/src/ifTypeOf.ts +0 -10
- package/src/index.ts +0 -11
- package/src/is.ts +0 -217
- package/src/isType.ts +0 -27
- package/src/typeOf.ts +0 -5
- package/src/validateType.ts +0 -16
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):
|
|
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
|
-
`
|
|
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?):
|
|
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
|
-
`
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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): [
|
|
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
|
-
\[`
|
|
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.
|
|
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.
|
|
49
|
-
"@xylabs/tsconfig": "~7.
|
|
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] }
|
package/src/IdentityFunction.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type IdentityFunction<T> = (value: unknown) => value is T
|
package/src/ObjectTypeShape.ts
DELETED
package/src/TypeOfTypes.ts
DELETED
|
@@ -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
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
package/src/validateType.ts
DELETED
|
@@ -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
|
-
}
|