Skip to content

Commit 6fac097

Browse files
committed
feat: implement deepEqual utility for comprehensive value comparison
Adds a new utility function `deepEqual` that performs deep comparisons of various data types including primitives, objects, arrays, dates, RegExp, Sets, and Maps. Includes extensive test coverage to ensure accuracy across different scenarios. Updates README with usage examples and adds a new test file for `deepEqual`. Also, introduces VSCode settings for improved development experience.
1 parent 292ed0d commit 6fac097

File tree

5 files changed

+527
-0
lines changed

5 files changed

+527
-0
lines changed

.vscode/settings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"editor.formatOnSave": true,
3+
"editor.formatOnPaste": true,
4+
"explorer.fileNesting.patterns": {
5+
"svelte.config.js": "*.config.ts, .zshrc",
6+
"+page.svelte": "*page.remote.ts, +page.server.ts"
7+
},
8+
"editor.codeActionsOnSave": {
9+
"source.fixAll": "explicit",
10+
"source.fixAll.sortJSON": "never",
11+
"source.organizeImports": "explicit",
12+
"source.sortImports": "explicit"
13+
},
14+
}

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,21 @@ debouncedSearch.call("hello").then((result) => {
4949
});
5050
```
5151

52+
### deepEqual
53+
54+
```typescript
55+
import { deepEqual } from "@sillvva/utils";
56+
57+
// Deep compare of primitives, arrays, objects, maps, sets, dates, and regexps:
58+
console.log(deepEqual({ a: 1, b: [2, 3] }, { b: [2, 3], a: 1 })); // true
59+
console.log(deepEqual([1, 2, 3], [1, 2, 3])); // true
60+
console.log(deepEqual(new Set([1, 2]), new Set([2, 1]))); // true
61+
console.log(deepEqual(new Map([["x", 1]]), new Map([["x", 1]]))); // true
62+
63+
// Not equal when structure or values differ:
64+
console.log(deepEqual({ foo: 1 }, { foo: 2 })); // false
65+
```
66+
5267
### isDefined
5368

5469
```typescript

0 commit comments

Comments
 (0)