refactor: simplify Terminal API with module-level init()#60
Merged
Conversation
- Add init() function to handle WASM loading once at startup - Remove ghostty parameter from Terminal constructor - Make open() synchronous again for xterm.js compatibility - Update all tests to use init() in beforeAll - Update all demos and README examples - Simplifies API: await init(); const term = new Terminal();
Created a reusable test helper that ensures complete test isolation by creating a fresh Ghostty WASM instance for each terminal. Benefits: - Single pattern for all tests: await createIsolatedTerminal() - No manual Ghostty instance management in test files - Clean slate guarantee - each test has isolated WASM memory - Parallel-ready - no shared state between tests - Simpler test code - just one function call Updated all test files: - lib/test-helpers.ts: New helper function - lib/buffer.test.ts: Uses createIsolatedTerminal() - lib/terminal.test.ts: Uses createIsolatedTerminal() - lib/scrolling.test.ts: Uses createIsolatedTerminal() - lib/selection-manager.test.ts: Uses createIsolatedTerminal() - lib/input-handler.test.ts: Uses fresh Ghostty per test All 283 tests pass with complete isolation.
sreya
added a commit
that referenced
this pull request
Nov 25, 2025
The module-level init() was added in PR #60 but demo/bin/demo.js was not updated to call it, causing: 'ghostty-web not initialized. Call init() before creating Terminal instances.'
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.