We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent d9d8948 commit 0ab4958Copy full SHA for 0ab4958
1 file changed
packages/patchlogr-core/src/utils/stableStringify.ts
@@ -1,3 +1,26 @@
1
-export function stableStringify(obj: Record<string, unknown>) {
2
- return JSON.stringify(obj, Object.keys(obj).sort());
+export function stableStringify(obj: Record<string, unknown>): string {
+ return JSON.stringify(sortObjectKeys(obj));
3
+}
4
+
5
+function sortObjectKeys(value: unknown): unknown {
6
+ if (value === null || value === undefined) {
7
+ return value;
8
+ }
9
10
+ if (Array.isArray(value)) {
11
+ return value.map(sortObjectKeys);
12
13
14
+ if (typeof value === "object") {
15
+ const sortedObj: Record<string, unknown> = {};
16
+ const keys = Object.keys(value).sort();
17
18
+ for (const key of keys) {
19
+ sortedObj[key] = sortObjectKeys(value[key]);
20
21
22
+ return sortedObj;
23
24
25
26
}
0 commit comments