TS generator: fix #12 (5 expression patterns) + #11 (opaque record types)

#12: All 5 untranslated SpeckDL patterns now emit valid JS:
  - notIn → !.has(), old() → drop, union → Set spread,
    set diff → filter, append() → [...X, Y], length() → .length
  - ==/!= operator replacement fixed (word-boundary regression)
  - Postcondition object comparisons get @ts-expect-error TS2839

#11: Generator auto-detects opaque identifier types used in state
  variables and action params, emits 'type X = any' before class.
  - State properties use ! (non-null assertion) for strict mode

TigerBeetleLedger → tsc --noEmit = 0 errors. 37/37 tests pass.
This commit is contained in:
Scott Scoble 2026-05-11 10:16:15 -07:00
parent 29d4c83d76
commit 8b520284cb
31 changed files with 3934 additions and 973 deletions

View file

@ -12,7 +12,7 @@
"@type": "prov:Generation",
"prov:activity": {
"@type": "prov:Activity",
"prov:startTime": "2026-05-10T05:04:07.209Z"
"prov:startTime": "2026-05-10T09:08:16.262Z"
}
},
"rdfs:label": "ToggleSwitch"