(value: unknown)
| 145 | } |
| 146 | |
| 147 | function stableStringify(value: unknown): string { |
| 148 | if (Array.isArray(value)) return `[${value.map(stableStringify).join(',')}]` |
| 149 | if (isRecord(value)) { |
| 150 | return `{${Object.keys(value) |
| 151 | .sort() |
| 152 | .map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`) |
| 153 | .join(',')}}` |
| 154 | } |
| 155 | return JSON.stringify(value) |
| 156 | } |
| 157 | |
| 158 | function chartSignature(chart: ChartPayload): string { |
| 159 | const persisted = toPersistedChartPayload(chart) |
no test coverage detected