Skip to content

Convert application infrastructure to TypeScript - #68

Merged
skratchdot merged 1 commit into
mainfrom
typescript-runtime-modules
Sep 9, 2026
Merged

skratchdot merged 1 commit into
mainfrom
typescript-runtime-modules

Conversation

@skratchdot

Copy link
Copy Markdown
Owner

Bring the remaining application infrastructure under strict TypeScript checking by converting ten modules: the player and Timbre adapters, MIDI helpers/export, Ace setup, sorting registry/source map, and worker entry. Keep the eight built-in algorithm implementations as JavaScript because their raw source is shown and edited as JavaScript.

Add typed settings getters and explicit player, frame, callback, and canvas contracts. Supply focused declarations for Timbre's browser API, Ace's browser subpath, and the installed jsmidgen API, whose File.toBytes returns a binary string. Remove the now-unnecessary string assertion at MIDI export. Update imports, documentation links, and the worker lint path. No dependencies added.

Validation:

  • pnpm run check: lint, formatting, spelling, strict type checking, 353 Vitest tests (including Chromium hook tests), and production build pass.
  • Full Playwright suite: 43 tests pass, covering editor loading and edits, workers and no-Worker fallback, audio controls, MIDI export, accessibility, navigation, and lifecycle cleanup.
  • git diff --check passes.

The declarations describe the third-party API subset used by this application. Tests remain JavaScript. Audio synthesis and MIDI timing are preserved; no new listening comparison was performed.

@skratchdot
skratchdot merged commit c65928e into main Sep 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant