MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / jsonDeepEqual

Function jsonDeepEqual

src/installer/targets/shared.ts:111–128  ·  view source on GitHub ↗
(a: unknown, b: unknown)

Source from the content-addressed store, hash-verified

109 * re-writing (and emitting a confusing "Updated" log line).
110 */
111export function jsonDeepEqual(a: unknown, b: unknown): boolean {
112 if (a === b) return true;
113 if (typeof a !== typeof b) return false;
114 if (a === null || b === null) return a === b;
115 if (typeof a !== 'object') return false;
116 if (Array.isArray(a) !== Array.isArray(b)) return false;
117 if (Array.isArray(a) && Array.isArray(b)) {
118 if (a.length !== b.length) return false;
119 return a.every((v, i) => jsonDeepEqual(v, b[i]));
120 }
121 const ao = a as Record<string, unknown>;
122 const bo = b as Record<string, unknown>;
123 const ak = Object.keys(ao).sort();
124 const bk = Object.keys(bo).sort();
125 if (ak.length !== bk.length) return false;
126 if (!ak.every((k, i) => k === bk[i])) return false;
127 return ak.every((k) => jsonDeepEqual(ao[k], bo[k]));
128}
129
130/**
131 * Replace or append a marker-delimited section in a markdown-ish file.

Callers 7

writeMcpEntryFunction · 0.90
writeMcpEntryFunction · 0.90
writePermissionsEntryFunction · 0.90
writeMcpEntryFunction · 0.90
writeMcpEntryFunction · 0.90
writeMcpEntryFunction · 0.90
writeMcpEntryFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected