QuickType status bar reports kebab-only JSON as mixed #1036

Closed
opened 2026-08-13 05:05:55 +00:00 by spikerj · 1 comment
Owner

Discovered while covering leftover QuickType TS (wave 7).

What happens

determineDominantCase classifies keys as camel / snake / pascal / other. kebab-case keys (user-name) fall into other. When other is the dominant class (≥60% of keys) the function still returns "mixed" instead of a dedicated label.

So {"user-name":1,"item-count":2} shows mixed in the JSON status bar even though every key is kebab-case.

Expected

Either:

  • classify kebab (and UPPER_CASE) as first-class kinds, or
  • surface other as its own status (e.g. other / unknown) instead of mixed.

mixed should mean no single family reaches 60%, not "the majority is something we don't name".

Pinned as a characterization test in quick-type.component.leftovers.spec.ts.

Discovered while covering leftover QuickType TS (wave 7). ## What happens `determineDominantCase` classifies keys as camel / snake / pascal / other. kebab-case keys (`user-name`) fall into `other`. When `other` is the dominant class (≥60% of keys) the function still returns `"mixed"` instead of a dedicated label. So `{"user-name":1,"item-count":2}` shows **mixed** in the JSON status bar even though every key is kebab-case. ## Expected Either: - classify kebab (and UPPER_CASE) as first-class kinds, or - surface `other` as its own status (e.g. `other` / `unknown`) instead of `mixed`. `mixed` should mean *no single family reaches 60%*, not "the majority is something we don't name". Pinned as a characterization test in `quick-type.component.leftovers.spec.ts`.
Author
Owner

Fixed in spikersoft-angular PR #823 (a0f0ccd9). Closing.

Fixed in `spikersoft-angular` [PR #823](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/823) (`a0f0ccd9`). Closing.
Sign in to join this conversation.