MCPcopy Create free account
hub / github.com/anomalyco/opencode / valueDiffs

Function valueDiffs

packages/http-recorder/src/matching.ts:49–63  ·  view source on GitHub ↗
(expected: unknown, received: unknown, base = "$", limit = 8)

Source from the content-addressed store, hash-verified

47const jsonBody = (body: string) => Option.getOrUndefined(decodeJson(body))
48
49const valueDiffs = (expected: unknown, received: unknown, base = "$", limit = 8): ReadonlyArray<string> => {
50 if (Object.is(expected, received)) return []
51 if (isRecord(expected) && isRecord(received)) {
52 return [...new Set([...Object.keys(expected), ...Object.keys(received)])]
53 .toSorted()
54 .flatMap((key) => valueDiffs(expected[key], received[key], `${base}.${key}`, limit))
55 .slice(0, limit)
56 }
57 if (Array.isArray(expected) && Array.isArray(received)) {
58 return Array.from({ length: Math.max(expected.length, received.length) }, (_, index) => index)
59 .flatMap((index) => valueDiffs(expected[index], received[index], `${base}[${index}]`, limit))
60 .slice(0, limit)
61 }
62 return [`${base} expected ${safeText(expected)}, received ${safeText(received)}`]
63}
64
65const headerDiffs = (expected: Record<string, string>, received: Record<string, string>) =>
66 [...new Set([...Object.keys(expected), ...Object.keys(received)])].toSorted().flatMap((key) => {

Callers 1

requestDiffFunction · 0.85

Calls 3

safeTextFunction · 0.85
isRecordFunction · 0.70
fromMethod · 0.45

Tested by

no test coverage detected