@xylabs/object 5.0.33 → 5.0.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/object",
3
- "version": "5.0.33",
3
+ "version": "5.0.35",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -37,13 +37,16 @@
37
37
  "types": "./dist/neutral/index.d.ts",
38
38
  "files": [
39
39
  "dist",
40
- "src"
40
+ "src",
41
+ "!**/*.bench.*",
42
+ "!**/*.spec.*",
43
+ "!**/*.test.*"
41
44
  ],
42
45
  "dependencies": {
43
- "@xylabs/assert": "~5.0.33",
44
- "@xylabs/object-model": "~5.0.33",
45
- "@xylabs/promise": "~5.0.33",
46
- "@xylabs/typeof": "~5.0.33"
46
+ "@xylabs/assert": "~5.0.35",
47
+ "@xylabs/object-model": "~5.0.35",
48
+ "@xylabs/promise": "~5.0.35",
49
+ "@xylabs/typeof": "~5.0.35"
47
50
  },
48
51
  "devDependencies": {
49
52
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deepMerge.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deepMerge.spec.d.ts","sourceRoot":"","sources":["../../../src/spec/deepMerge.spec.ts"],"names":[],"mappings":""}
@@ -1,80 +0,0 @@
1
- import {
2
- describe, expect, it,
3
- } from 'vitest'
4
-
5
- import { deepMerge } from '../deepMerge.ts'
6
-
7
- describe('deepMerge', () => {
8
- it('merges flat objects', () => {
9
- const a = { foo: 1 }
10
- const b = { bar: 'hello' }
11
- const result = deepMerge(a, b)
12
- expect(result).toEqual({ foo: 1, bar: 'hello' })
13
- })
14
-
15
- it('overwrites primitive values', () => {
16
- const a = { count: 1 }
17
- const b = { count: 2 }
18
- const result = deepMerge(a, b)
19
- expect(result).toEqual({ count: 2 })
20
- })
21
-
22
- it('merges nested objects recursively', () => {
23
- const a = { config: { retries: 3 } }
24
- const b = { config: { timeout: 5000 } }
25
- const result = deepMerge(a, b)
26
- expect(result).toEqual({ config: { retries: 3, timeout: 5000 } })
27
- })
28
-
29
- it('overwrites with non-object values in nested structure', () => {
30
- const a = { options: { log: true } }
31
- const b = { options: false }
32
- const result = deepMerge(a, b)
33
- expect(result).toEqual({ options: false })
34
- })
35
-
36
- it('overwrites arrays shallowly (no deep merge)', () => {
37
- const a = { list: [1, 2] }
38
- const b = { list: [3] }
39
- const result = deepMerge(a, b)
40
- expect(result).toEqual({ list: [3] })
41
- })
42
-
43
- it('skips undefined or null values in source array', () => {
44
- const a = { a: 1 }
45
- const b = null
46
- const c = undefined
47
- const result = deepMerge(a, b as never, c as never)
48
- expect(result).toEqual({ a: 1 })
49
- })
50
-
51
- it('works with symbol keys', () => {
52
- const sym = Symbol('key')
53
- const a = { [sym]: 'value1' }
54
- const b = { [sym]: 'value2' }
55
- const result = deepMerge(a, b)
56
- expect(result[sym]).toBe('value2')
57
- })
58
-
59
- it('handles multiple sources correctly', () => {
60
- const a = { x: 1 }
61
- const b = { y: 2 }
62
- const c = { z: 3 }
63
- const result = deepMerge(a, b, c)
64
- expect(result).toEqual({
65
- x: 1, y: 2, z: 3,
66
- })
67
- })
68
-
69
- it('returns an empty object if no args passed', () => {
70
- const result = deepMerge()
71
- expect(result).toEqual({})
72
- })
73
-
74
- it('handles property values which are null', () => {
75
- const a = { x: 1 }
76
- const b = { x: null }
77
- const result = deepMerge(a, b)
78
- expect(result).toEqual({ x: null })
79
- })
80
- })