@magic/types 0.1.23 → 0.1.25
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 +11 -1
- package/package.json +19 -12
- package/src/deep/different.js +33 -0
- package/src/deep/equal.js +146 -0
- package/src/deep/{index.mjs → index.js} +2 -2
- package/src/fns.js +630 -0
- package/src/index.js +8 -0
- package/src/{lib.mjs → lib.js} +18 -24
- package/types/deep/different.d.ts +14 -0
- package/types/deep/equal.d.ts +14 -0
- package/types/deep/index.d.ts +100 -0
- package/types/fns.d.ts +178 -0
- package/types/index.d.ts +508 -0
- package/types/lib.d.ts +507 -0
- package/src/deep/different.mjs +0 -18
- package/src/deep/equal.mjs +0 -108
- package/src/fns.mjs +0 -205
- package/src/index.mjs +0 -12
package/src/{lib.mjs → lib.js}
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import * as fns from './fns.
|
|
1
|
+
import * as fns from './fns.js'
|
|
2
|
+
import * as deep from './deep/index.js'
|
|
2
3
|
|
|
3
4
|
export const is = {
|
|
4
5
|
count: fns.getLength,
|
|
@@ -42,10 +43,10 @@ export const is = {
|
|
|
42
43
|
thenable: fns.isPromise,
|
|
43
44
|
then: fns.isPromise,
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
isArguments: fns.isArguments,
|
|
47
|
+
isArgs: fns.isArguments,
|
|
48
|
+
arguments: fns.isArguments,
|
|
49
|
+
args: fns.isArguments,
|
|
49
50
|
|
|
50
51
|
isUUID: fns.isUUID,
|
|
51
52
|
uuid: fns.isUUID,
|
|
@@ -57,16 +58,11 @@ export const is = {
|
|
|
57
58
|
isTypes: fns.isTypes,
|
|
58
59
|
test: fns.isTypes,
|
|
59
60
|
types: fns.isTypes,
|
|
61
|
+
is: fns.isTypes,
|
|
60
62
|
|
|
61
63
|
isEmpty: fns.isEmpty,
|
|
62
64
|
empty: fns.isEmpty,
|
|
63
65
|
|
|
64
|
-
isEqual: fns.isEqual,
|
|
65
|
-
isEq: fns.isEqual,
|
|
66
|
-
equal: fns.isEqual,
|
|
67
|
-
eq: fns.isEqual,
|
|
68
|
-
is: fns.isEqual,
|
|
69
|
-
|
|
70
66
|
isNot: fns.isNot,
|
|
71
67
|
not: fns.isNot,
|
|
72
68
|
isNeq: fns.isNot,
|
|
@@ -109,7 +105,6 @@ export const is = {
|
|
|
109
105
|
isGeneratorFunction: fns.isGeneratorFunction,
|
|
110
106
|
isGeneratorFn: fns.isGeneratorFunction,
|
|
111
107
|
isGeneratorFunc: fns.isGeneratorFunction,
|
|
112
|
-
isGeneratorFn: fns.isGeneratorFunction,
|
|
113
108
|
generator: fns.isGeneratorFunction,
|
|
114
109
|
isGenerator: fns.isGeneratorFunction,
|
|
115
110
|
generatorFn: fns.isGeneratorFunction,
|
|
@@ -271,13 +266,17 @@ export const is = {
|
|
|
271
266
|
|
|
272
267
|
isModule: fns.isModule,
|
|
273
268
|
module: fns.isModule,
|
|
269
|
+
...deep,
|
|
274
270
|
}
|
|
275
271
|
|
|
276
|
-
//
|
|
277
|
-
|
|
272
|
+
// count, length, len and ln are functions that return the length,
|
|
273
|
+
// but they also have comparison methods attached as properties.
|
|
274
|
+
// This creates enhanced length functions with comparison capabilities.
|
|
275
|
+
|
|
276
|
+
// Create enhanced length functions with comparison methods
|
|
277
|
+
const lengthFunctions = {
|
|
278
278
|
eq: fns.isLengthEqual,
|
|
279
279
|
equal: fns.isLengthEqual,
|
|
280
|
-
greater: fns.isLengthGreater,
|
|
281
280
|
gt: fns.isLengthGreater,
|
|
282
281
|
bigger: fns.isLengthGreater,
|
|
283
282
|
biggerequal: fns.isLengthGreaterOrEqual,
|
|
@@ -285,7 +284,6 @@ const ln = {
|
|
|
285
284
|
greaterequal: fns.isLengthGreaterOrEqual,
|
|
286
285
|
gte: fns.isLengthGreaterOrEqual,
|
|
287
286
|
gteq: fns.isLengthGreaterOrEqual,
|
|
288
|
-
|
|
289
287
|
lower: fns.isLengthSmaller,
|
|
290
288
|
smaller: fns.isLengthSmaller,
|
|
291
289
|
lt: fns.isLengthSmaller,
|
|
@@ -295,14 +293,10 @@ const ln = {
|
|
|
295
293
|
lteq: fns.isLengthSmallerOrEqual,
|
|
296
294
|
}
|
|
297
295
|
|
|
298
|
-
//
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
const applyLenKey = (k, fn) => key => (is[key][k] = fn)
|
|
303
|
-
|
|
304
|
-
const applyLenKeys = ([k, fn]) => ['count', 'length', 'len', 'ln'].forEach(applyLenKey(k, fn))
|
|
296
|
+
// Replace the original length functions with enhanced versions
|
|
297
|
+
is.ln = fns.getLength
|
|
298
|
+
Object.assign(is.ln, lengthFunctions)
|
|
305
299
|
|
|
306
|
-
|
|
300
|
+
is.length = is.len = is.count = is.ln
|
|
307
301
|
|
|
308
302
|
export default is
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @overload
|
|
3
|
+
* @param {unknown} a
|
|
4
|
+
* @param {unknown} b
|
|
5
|
+
* @returns {boolean}
|
|
6
|
+
*/
|
|
7
|
+
export function different(a: unknown, b: unknown): boolean
|
|
8
|
+
/**
|
|
9
|
+
* @overload
|
|
10
|
+
* @param {unknown} a
|
|
11
|
+
* @returns {(c: unknown) => boolean}
|
|
12
|
+
*/
|
|
13
|
+
export function different(a: unknown): (c: unknown) => boolean
|
|
14
|
+
export default different
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @overload
|
|
3
|
+
* @param {unknown} a
|
|
4
|
+
* @param {unknown} b
|
|
5
|
+
* @returns {boolean}
|
|
6
|
+
*/
|
|
7
|
+
export function equal(a: unknown, b: unknown): boolean
|
|
8
|
+
/**
|
|
9
|
+
* @overload
|
|
10
|
+
* @param {unknown} a
|
|
11
|
+
* @returns {(c: unknown) => boolean}
|
|
12
|
+
*/
|
|
13
|
+
export function equal(a: unknown): (c: unknown) => boolean
|
|
14
|
+
export default equal
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export const isDeepEqual: {
|
|
2
|
+
/**
|
|
3
|
+
* @overload
|
|
4
|
+
* @param {unknown} a
|
|
5
|
+
* @param {unknown} b
|
|
6
|
+
* @returns {boolean}
|
|
7
|
+
*/
|
|
8
|
+
(a: unknown, b: unknown): boolean
|
|
9
|
+
/**
|
|
10
|
+
* @overload
|
|
11
|
+
* @param {unknown} a
|
|
12
|
+
* @returns {(c: unknown) => boolean}
|
|
13
|
+
*/
|
|
14
|
+
(a: unknown): (c: unknown) => boolean
|
|
15
|
+
}
|
|
16
|
+
export const deepEqual: {
|
|
17
|
+
/**
|
|
18
|
+
* @overload
|
|
19
|
+
* @param {unknown} a
|
|
20
|
+
* @param {unknown} b
|
|
21
|
+
* @returns {boolean}
|
|
22
|
+
*/
|
|
23
|
+
(a: unknown, b: unknown): boolean
|
|
24
|
+
/**
|
|
25
|
+
* @overload
|
|
26
|
+
* @param {unknown} a
|
|
27
|
+
* @returns {(c: unknown) => boolean}
|
|
28
|
+
*/
|
|
29
|
+
(a: unknown): (c: unknown) => boolean
|
|
30
|
+
}
|
|
31
|
+
export const deepEq: {
|
|
32
|
+
/**
|
|
33
|
+
* @overload
|
|
34
|
+
* @param {unknown} a
|
|
35
|
+
* @param {unknown} b
|
|
36
|
+
* @returns {boolean}
|
|
37
|
+
*/
|
|
38
|
+
(a: unknown, b: unknown): boolean
|
|
39
|
+
/**
|
|
40
|
+
* @overload
|
|
41
|
+
* @param {unknown} a
|
|
42
|
+
* @returns {(c: unknown) => boolean}
|
|
43
|
+
*/
|
|
44
|
+
(a: unknown): (c: unknown) => boolean
|
|
45
|
+
}
|
|
46
|
+
export const isDeepDifferent: {
|
|
47
|
+
/**
|
|
48
|
+
* @overload
|
|
49
|
+
* @param {unknown} a
|
|
50
|
+
* @param {unknown} b
|
|
51
|
+
* @returns {boolean}
|
|
52
|
+
*/
|
|
53
|
+
(a: unknown, b: unknown): boolean
|
|
54
|
+
/**
|
|
55
|
+
* @overload
|
|
56
|
+
* @param {unknown} a
|
|
57
|
+
* @returns {(c: unknown) => boolean}
|
|
58
|
+
*/
|
|
59
|
+
(a: unknown): (c: unknown) => boolean
|
|
60
|
+
}
|
|
61
|
+
export const deepDifferent: {
|
|
62
|
+
/**
|
|
63
|
+
* @overload
|
|
64
|
+
* @param {unknown} a
|
|
65
|
+
* @param {unknown} b
|
|
66
|
+
* @returns {boolean}
|
|
67
|
+
*/
|
|
68
|
+
(a: unknown, b: unknown): boolean
|
|
69
|
+
/**
|
|
70
|
+
* @overload
|
|
71
|
+
* @param {unknown} a
|
|
72
|
+
* @returns {(c: unknown) => boolean}
|
|
73
|
+
*/
|
|
74
|
+
(a: unknown): (c: unknown) => boolean
|
|
75
|
+
}
|
|
76
|
+
export const deepDiff: {
|
|
77
|
+
/**
|
|
78
|
+
* @overload
|
|
79
|
+
* @param {unknown} a
|
|
80
|
+
* @param {unknown} b
|
|
81
|
+
* @returns {boolean}
|
|
82
|
+
*/
|
|
83
|
+
(a: unknown, b: unknown): boolean
|
|
84
|
+
/**
|
|
85
|
+
* @overload
|
|
86
|
+
* @param {unknown} a
|
|
87
|
+
* @returns {(c: unknown) => boolean}
|
|
88
|
+
*/
|
|
89
|
+
(a: unknown): (c: unknown) => boolean
|
|
90
|
+
}
|
|
91
|
+
export namespace deep {
|
|
92
|
+
export { different as isDifferent }
|
|
93
|
+
export { different }
|
|
94
|
+
export { different as diff }
|
|
95
|
+
export { equal as isEqual }
|
|
96
|
+
export { equal }
|
|
97
|
+
export { equal as eq }
|
|
98
|
+
}
|
|
99
|
+
import { different } from './different'
|
|
100
|
+
import { equal } from './equal'
|
package/types/fns.d.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
export function isArray(e: unknown): e is unknown[]
|
|
2
|
+
export function isBoolean(e: unknown): e is boolean
|
|
3
|
+
export function isDefined(e: unknown): e is NonNullable<unknown>
|
|
4
|
+
export function isUndefined(e: unknown): e is undefined
|
|
5
|
+
export function isFunction(e: unknown): e is Function
|
|
6
|
+
export function isAsyncFunction(e: unknown): e is (...args: unknown[]) => Promise<unknown>
|
|
7
|
+
export function isGeneratorFunction(e: unknown): e is GeneratorFunction
|
|
8
|
+
export function isNumber(e: unknown): e is number
|
|
9
|
+
export function isInteger(e: unknown): e is number
|
|
10
|
+
export function isFloat(e: unknown): e is number
|
|
11
|
+
export function isObject(e: unknown): e is object
|
|
12
|
+
export function isObjectNative(e: unknown): e is Record<string, unknown>
|
|
13
|
+
export function isMergeableObject(e: unknown): e is Record<string, unknown>
|
|
14
|
+
/**
|
|
15
|
+
* Alias for isMergeableObject
|
|
16
|
+
* @type {(e: unknown) => e is Record<string, unknown>}
|
|
17
|
+
*/
|
|
18
|
+
export const isMergeable: (e: unknown) => e is Record<string, unknown>
|
|
19
|
+
export function isString(e: unknown): e is string
|
|
20
|
+
export function isRGBValue(e: unknown): e is {
|
|
21
|
+
r: number
|
|
22
|
+
g: number
|
|
23
|
+
b: number
|
|
24
|
+
}
|
|
25
|
+
export function isRGBObject(e: unknown): e is {
|
|
26
|
+
r: number
|
|
27
|
+
g: number
|
|
28
|
+
b: number
|
|
29
|
+
}
|
|
30
|
+
export function isRGBAValue(e: unknown): e is {
|
|
31
|
+
r: number
|
|
32
|
+
g: number
|
|
33
|
+
b: number
|
|
34
|
+
a: number
|
|
35
|
+
}
|
|
36
|
+
export function isRGBAObject(e: unknown): e is {
|
|
37
|
+
r: number
|
|
38
|
+
g: number
|
|
39
|
+
b: number
|
|
40
|
+
a: number
|
|
41
|
+
}
|
|
42
|
+
export const hexRegex: RegExp
|
|
43
|
+
export function isHexColor(e: unknown): boolean
|
|
44
|
+
export function isHexColor3(e: unknown): boolean
|
|
45
|
+
export function isHexColor4(e: unknown): boolean
|
|
46
|
+
export function isHexColor6(e: unknown): boolean
|
|
47
|
+
export function isHexColor8(e: unknown): boolean
|
|
48
|
+
export function isHexAlphaColor(e: unknown): boolean
|
|
49
|
+
export function isHexAlphaColor4(e: unknown): boolean
|
|
50
|
+
export function isHexAlphaColor8(e: unknown): boolean
|
|
51
|
+
export function isColor(e: unknown): boolean
|
|
52
|
+
export function isTruthy(e: unknown): boolean
|
|
53
|
+
export function isFalsy(e: unknown): boolean
|
|
54
|
+
export function getLength(arg: unknown): number
|
|
55
|
+
export function compareCount(len: unknown, e: unknown): boolean
|
|
56
|
+
/**
|
|
57
|
+
* @overload
|
|
58
|
+
* @param {unknown} a
|
|
59
|
+
* @param {unknown} b
|
|
60
|
+
* @returns {boolean}
|
|
61
|
+
*/
|
|
62
|
+
export function isLengthEqual(a: unknown, b: unknown): boolean
|
|
63
|
+
/**
|
|
64
|
+
* @overload
|
|
65
|
+
* @param {unknown} a
|
|
66
|
+
* @returns {(c: unknown) => boolean}
|
|
67
|
+
*/
|
|
68
|
+
export function isLengthEqual(a: unknown): (c: unknown) => boolean
|
|
69
|
+
/**
|
|
70
|
+
* @overload
|
|
71
|
+
* @param {unknown} a
|
|
72
|
+
* @param {unknown} b
|
|
73
|
+
* @returns {boolean}
|
|
74
|
+
*/
|
|
75
|
+
export function isLengthGreater(a: unknown, b: unknown): boolean
|
|
76
|
+
/**
|
|
77
|
+
* @overload
|
|
78
|
+
* @param {unknown} a
|
|
79
|
+
* @returns {(c: unknown) => boolean}
|
|
80
|
+
*/
|
|
81
|
+
export function isLengthGreater(a: unknown): (c: unknown) => boolean
|
|
82
|
+
/**
|
|
83
|
+
* @overload
|
|
84
|
+
* @param {unknown} a
|
|
85
|
+
* @param {unknown} b
|
|
86
|
+
* @returns {boolean}
|
|
87
|
+
*/
|
|
88
|
+
export function isLengthGreaterOrEqual(a: unknown, b: unknown): boolean
|
|
89
|
+
/**
|
|
90
|
+
* @overload
|
|
91
|
+
* @param {unknown} a
|
|
92
|
+
* @returns {(c: unknown) => boolean}
|
|
93
|
+
*/
|
|
94
|
+
export function isLengthGreaterOrEqual(a: unknown): (c: unknown) => boolean
|
|
95
|
+
/**
|
|
96
|
+
* @overload
|
|
97
|
+
* @param {unknown} a
|
|
98
|
+
* @param {unknown} b
|
|
99
|
+
* @returns {boolean}
|
|
100
|
+
*/
|
|
101
|
+
export function isLengthSmaller(a: unknown, b: unknown): boolean
|
|
102
|
+
/**
|
|
103
|
+
* @overload
|
|
104
|
+
* @param {unknown} a
|
|
105
|
+
* @returns {(c: unknown) => boolean}
|
|
106
|
+
*/
|
|
107
|
+
export function isLengthSmaller(a: unknown): (c: unknown) => boolean
|
|
108
|
+
/**
|
|
109
|
+
* @overload
|
|
110
|
+
* @param {unknown} a
|
|
111
|
+
* @param {unknown} b
|
|
112
|
+
* @returns {boolean}
|
|
113
|
+
*/
|
|
114
|
+
export function isLengthSmallerOrEqual(a: unknown, b: unknown): boolean
|
|
115
|
+
/**
|
|
116
|
+
* @overload
|
|
117
|
+
* @param {unknown} a
|
|
118
|
+
* @returns {(c: unknown) => boolean}
|
|
119
|
+
*/
|
|
120
|
+
export function isLengthSmallerOrEqual(a: unknown): (c: unknown) => boolean
|
|
121
|
+
export function isEmpty(e: unknown): boolean
|
|
122
|
+
export function isIterable(e: unknown): e is Iterable<unknown>
|
|
123
|
+
export function isEmail(e: unknown): e is string
|
|
124
|
+
export function isNull(e: unknown): e is null
|
|
125
|
+
export function isUndefinedOrNull(e: unknown): e is null | undefined
|
|
126
|
+
export function isBuffer(e: unknown): e is Buffer
|
|
127
|
+
export function isPromise(e: unknown): e is Promise<unknown>
|
|
128
|
+
/**
|
|
129
|
+
* Alias for isPromise
|
|
130
|
+
* @type {(e: unknown) => e is Promise<unknown>}
|
|
131
|
+
*/
|
|
132
|
+
export const isThenable: (e: unknown) => e is Promise<unknown>
|
|
133
|
+
export function isArguments(e: unknown): e is IArguments
|
|
134
|
+
export function isUUID(e: unknown): boolean
|
|
135
|
+
export function isType(e: unknown, ...types: string[]): boolean
|
|
136
|
+
export function isTypes(e: unknown, ...types: string[]): boolean
|
|
137
|
+
export function isNot(e: unknown, ...types: string[]): boolean
|
|
138
|
+
export function isSameType(a: unknown, b: unknown): boolean
|
|
139
|
+
export function isComparable(a: unknown): a is string | number | boolean
|
|
140
|
+
export function isEvery<T>(arr: T | T[], t: ((v: T) => boolean) | string): boolean
|
|
141
|
+
export function isSome<T>(arr: T | T[], t: ((v: T) => boolean) | string): boolean
|
|
142
|
+
export function isNone<T>(arr: T | T[], t: ((v: T) => boolean) | string): boolean
|
|
143
|
+
export function isInstanceOf(e: unknown, t: new (...args: any[]) => any): boolean
|
|
144
|
+
export function isError(e: unknown): e is Error
|
|
145
|
+
export function isDate(e: unknown): e is Date
|
|
146
|
+
export function isRegExp(e: unknown): e is RegExp
|
|
147
|
+
export function isMap(a: unknown): a is Map<unknown, unknown>
|
|
148
|
+
export function isSet(a: unknown): a is Set<unknown>
|
|
149
|
+
export function isWeakMap(a: unknown): a is WeakMap<any, unknown>
|
|
150
|
+
export function isWeakSet(a: unknown): a is WeakSet<any>
|
|
151
|
+
export function isUpperCase(s: unknown): s is string
|
|
152
|
+
export function isLowerCase(s: unknown): s is string
|
|
153
|
+
export function isOwnProp<K extends string | number | symbol>(
|
|
154
|
+
o: unknown,
|
|
155
|
+
k: K,
|
|
156
|
+
): o is Record<K, unknown>
|
|
157
|
+
export function isOwnProperty<K extends string | number | symbol>(
|
|
158
|
+
o: unknown,
|
|
159
|
+
k: K,
|
|
160
|
+
): o is Record<K, unknown>
|
|
161
|
+
export function isModule(s: unknown): s is ModuleLike
|
|
162
|
+
/**
|
|
163
|
+
* Check if a string is upper or lower case depending on mode
|
|
164
|
+
* @type {((s: unknown, c?: 'up' | 'down') => boolean) & {
|
|
165
|
+
* upper: (s: unknown) => boolean,
|
|
166
|
+
* lower: (s: unknown) => boolean
|
|
167
|
+
* }}
|
|
168
|
+
*/
|
|
169
|
+
export const isCase: ((s: unknown, c?: 'up' | 'down') => boolean) & {
|
|
170
|
+
upper: (s: unknown) => boolean
|
|
171
|
+
lower: (s: unknown) => boolean
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* A type representing a Module-like object
|
|
175
|
+
*/
|
|
176
|
+
export type ModuleLike = object & {
|
|
177
|
+
[Symbol.toStringTag]: 'Module'
|
|
178
|
+
}
|