17 lines · 642 B · TypeScript
RawDownload
function isRecord(value: unknown): value is Record<string, unknown> {  return typeof value === "object" && value !== null && !Array.isArray(value);} export function stableStringify(value: unknown): string {  if (Array.isArray(value)) {    return `[${value.map(stableStringify).join(",")}]`;  }  if (isRecord(value)) {    return `{${Object.entries(value)      .filter(([, entryValue]) => entryValue !== undefined)      .sort(([left], [right]) => left.localeCompare(right))      .map(([key, entryValue]) => `${JSON.stringify(key)}:${stableStringify(entryValue)}`)      .join(",")}}`;  }  return JSON.stringify(value) ?? "null";}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t