@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.
@@ -1,4 +1,5 @@
1
- import * as fns from './fns.mjs'
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
- // isArguments: fns.isArguments,
46
- // isArgs: fns.isArguments,
47
- // arguments: fns.isArguments,
48
- // args: fns.isArguments,
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
- // assign ln as properties of the getLength function
277
- const ln = {
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
- // count, length, len and ln are functions, returning the length.
299
- // the code below assigns all keys in the ln object to each of those functions,
300
- // allowing users of this library to call is.length.equal and other subfunctions.
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
- Object.entries(ln).forEach(applyLenKeys)
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
+ }