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

Function jsonDeepEqual

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

Source from the content-addressed store, hash-verified

136 * re-writing (and emitting a confusing "Updated" log line).
137 */
138export function jsonDeepEqual(a: unknown, b: unknown): boolean {
139 if (a === b) return true;
140 if (typeof a !== typeof b) return false;
141 if (a === null || b === null) return a === b;
142 if (typeof a !== 'object') return false;
143 if (Array.isArray(a) !== Array.isArray(b)) return false;
144 if (Array.isArray(a) && Array.isArray(b)) {
145 if (a.length !== b.length) return false;
146 return a.every((v, i) => jsonDeepEqual(v, b[i]));
147 }
148 const ao = a as Record<string, unknown>;
149 const bo = b as Record<string, unknown>;
150 const ak = Object.keys(ao).sort();
151 const bk = Object.keys(bo).sort();
152 if (ak.length !== bk.length) return false;
153 if (!ak.every((k, i) => k === bk[i])) return false;
154 return ak.every((k) => jsonDeepEqual(ao[k], bo[k]));
155}
156
157/**
158 * Replace or append a marker-delimited section in a markdown-ish file.

Callers 10

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

Calls

no outgoing calls

Tested by

no test coverage detected