@magic/types 0.1.31 → 0.1.33

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
@@ -190,6 +190,9 @@ isSome([1, 'str', {}], 'number') // true
190
190
  isSome([1, 'str', {}], is.number) // true
191
191
  // alias is.some
192
192
 
193
+ isSymbol(Symbol('testing)) // true
194
+ // alias is.symbol, is.sym
195
+
193
196
  isNone([1, 2, 3], 'string') // true
194
197
  isNone([1, 2, 3], is.number) // false
195
198
  // alias is.none
@@ -373,6 +376,15 @@ update dependencies
373
376
 
374
377
  - update dependencies
375
378
 
376
- ##### 0.1.32 - unreleased
379
+ ##### 0.1.32
380
+
381
+ - add is.symbol, is.sym and isSymbol functions
382
+
383
+ ##### 0.1.33
384
+
385
+ - is.instance now typeguards
386
+ - update dependencies
387
+
388
+ ##### 0.1.34 - unreleased
377
389
 
378
390
  ...
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magic/types",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "author": "Wizards & Witches",
5
5
  "homepage": "https://github.com/magic/types",
6
6
  "license": "AGPL-3.0",
@@ -45,9 +45,9 @@
45
45
  "@magic-modules/pre": "0.0.12",
46
46
  "@magic-themes/docs": "0.0.15",
47
47
  "@magic/core": "0.0.156",
48
- "@magic/format": "0.0.68",
49
- "@magic/test": "0.2.25",
50
- "typescript": "5.9.3"
48
+ "@magic/format": "0.0.72",
49
+ "@magic/test": "0.2.30",
50
+ "typescript": "6.0.2"
51
51
  },
52
52
  "keywords": [
53
53
  "magic",
@@ -61,6 +61,6 @@
61
61
  }
62
62
  ],
63
63
  "dependencies": {
64
- "@types/node": "24.9.2"
64
+ "@types/node": "25.5.0"
65
65
  }
66
66
  }
package/src/fns.js CHANGED
@@ -520,9 +520,10 @@ export const isNone = (arr, t) => !isSome(arr, t)
520
520
 
521
521
  /**
522
522
  * Check if a value is an instance of a given constructor
523
+ * @template T
523
524
  * @param {unknown} e - value to check
524
- * @param {new (...args: any[]) => any} t - constructor function
525
- * @returns {boolean} - true if value is an instance of constructor
525
+ * @param {new (...args: any[]) => T} t - constructor function
526
+ * @returns {e is T} - true if value is an instance of constructor
526
527
  */
527
528
  export const isInstanceOf = (e, t) => (!t ? false : e instanceof t)
528
529
 
@@ -554,6 +555,13 @@ export const isRegExp = e => isInstanceOf(e, RegExp)
554
555
  */
555
556
  export const isMap = a => isInstanceOf(a, Map)
556
557
 
558
+ /**
559
+ * Check if a value is a Symbol
560
+ * @param {unknown} a - value to check
561
+ * @returns {a is Symbol} - true if value is a Symbol
562
+ */
563
+ export const isSymbol = a => typeof a === 'symbol'
564
+
557
565
  /**
558
566
  * Check if a value is a Set
559
567
  * @param {unknown} a - value to check
package/src/lib.js CHANGED
@@ -83,6 +83,9 @@ export const is = /** @type {const} */ {
83
83
  null: fns.isNull,
84
84
  nil: fns.isNull,
85
85
 
86
+ sym: fns.isSymbol,
87
+ symbol: fns.isSymbol,
88
+
86
89
  isUndefinedOrNull: fns.isUndefinedOrNull,
87
90
  undefinedOrNull: fns.isUndefinedOrNull,
88
91
  undefinedOrNil: fns.isUndefinedOrNull,
package/types/fns.d.ts CHANGED
@@ -140,11 +140,12 @@ export function isComparable(a: unknown): a is string | number | boolean
140
140
  export function isEvery<T>(arr: T | T[], t: ((v: T) => boolean) | string): boolean
141
141
  export function isSome<T>(arr: T | T[], t: ((v: T) => boolean) | string): boolean
142
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
143
+ export function isInstanceOf<T>(e: unknown, t: new (...args: any[]) => T): e is T
144
144
  export function isError(e: unknown): e is Error
145
145
  export function isDate(e: unknown): e is Date
146
146
  export function isRegExp(e: unknown): e is RegExp
147
147
  export function isMap(a: unknown): a is Map<unknown, unknown>
148
+ export function isSymbol(a: unknown): a is Symbol
148
149
  export function isSet(a: unknown): a is Set<unknown>
149
150
  export function isWeakMap(a: unknown): a is WeakMap<any, unknown>
150
151
  export function isWeakSet(a: unknown): a is WeakSet<any>
package/types/index.d.ts CHANGED
@@ -202,6 +202,8 @@ export const is: {
202
202
  isNil: (e: unknown) => e is null
203
203
  null: (e: unknown) => e is null
204
204
  nil: (e: unknown) => e is null
205
+ sym: (a: unknown) => a is Symbol
206
+ symbol: (a: unknown) => a is Symbol
205
207
  isUndefinedOrNull: (e: unknown) => e is null | undefined
206
208
  undefinedOrNull: (e: unknown) => e is null | undefined
207
209
  undefinedOrNil: (e: unknown) => e is null | undefined
@@ -478,9 +480,9 @@ export const is: {
478
480
  all: <T>(arr: T | T[], t: ((v: T) => boolean) | string) => boolean
479
481
  some: <T>(arr: T | T[], t: ((v: T) => boolean) | string) => boolean
480
482
  none: <T>(arr: T | T[], t: ((v: T) => boolean) | string) => boolean
481
- instance: (e: unknown, t: new (...args: any[]) => any) => boolean
482
- instanceof: (e: unknown, t: new (...args: any[]) => any) => boolean
483
- instanceOf: (e: unknown, t: new (...args: any[]) => any) => boolean
483
+ instance: <T>(e: unknown, t: new (...args: any[]) => T) => e is T
484
+ instanceof: <T>(e: unknown, t: new (...args: any[]) => T) => e is T
485
+ instanceOf: <T>(e: unknown, t: new (...args: any[]) => T) => e is T
484
486
  isCase: ((s: unknown, c?: 'up' | 'down') => boolean) & {
485
487
  upper: (s: unknown) => boolean
486
488
  lower: (s: unknown) => boolean
package/types/lib.d.ts CHANGED
@@ -200,6 +200,8 @@ export const is: {
200
200
  isNil: (e: unknown) => e is null
201
201
  null: (e: unknown) => e is null
202
202
  nil: (e: unknown) => e is null
203
+ sym: (a: unknown) => a is Symbol
204
+ symbol: (a: unknown) => a is Symbol
203
205
  isUndefinedOrNull: (e: unknown) => e is null | undefined
204
206
  undefinedOrNull: (e: unknown) => e is null | undefined
205
207
  undefinedOrNil: (e: unknown) => e is null | undefined
@@ -476,9 +478,9 @@ export const is: {
476
478
  all: <T>(arr: T | T[], t: ((v: T) => boolean) | string) => boolean
477
479
  some: <T>(arr: T | T[], t: ((v: T) => boolean) | string) => boolean
478
480
  none: <T>(arr: T | T[], t: ((v: T) => boolean) | string) => boolean
479
- instance: (e: unknown, t: new (...args: any[]) => any) => boolean
480
- instanceof: (e: unknown, t: new (...args: any[]) => any) => boolean
481
- instanceOf: (e: unknown, t: new (...args: any[]) => any) => boolean
481
+ instance: <T>(e: unknown, t: new (...args: any[]) => T) => e is T
482
+ instanceof: <T>(e: unknown, t: new (...args: any[]) => T) => e is T
483
+ instanceOf: <T>(e: unknown, t: new (...args: any[]) => T) => e is T
482
484
  isCase: ((s: unknown, c?: 'up' | 'down') => boolean) & {
483
485
  upper: (s: unknown) => boolean
484
486
  lower: (s: unknown) => boolean