Graphite/frontend/wasm
Keavon Chambers 2e2c4fe180
Restructure frontend TS files so managers/stores export destructors instead of returning them from their constructors (#3919)
* Replace parameter passing with getContext and extract destroy functions to module-level exports

* Resend layouts from Rust when editor is re-mounted on HMR

* Code review
2026-03-19 18:25:34 -07:00
..
src Restructure frontend TS files so managers/stores export destructors instead of returning them from their constructors (#3919) 2026-03-19 18:25:34 -07:00
Cargo.toml Replace `npm` build script with new `cargo run` tool (#3832) 2026-03-07 13:26:19 +00:00
README.md Refactor the TypeScript data flow for full type safety and auto-generation of Rust types (#3865) 2026-03-09 16:35:04 -07:00

README.md

Overview of /frontend/wasm/

Wasm wrapper API: src/editor_api.rs

Provides bindings for JS to call functions defined in this file, and for FrontendMessages to be sent from Rust back to JS in the form of a callback to the subscription router. This Wasm wrapper crate, since it's written in Rust, is able to call into the Editor crate's codebase and send FrontendMessages back to JS.

Wasm wrapper helper code: src/helpers.rs

Assorted function and struct definitions used in the Wasm wrapper.

Native communication: src/native_communication.rs

Handles receiving serialized FrontendMessages from the native desktop app via an ArrayBuffer and forwarding them to JS through the editor handle.

Wasm wrapper initialization: src/lib.rs

Entry point for the Rust codebase in the Wasm environment. Sets up panic hooks and logging, and defines thread-local storage for the editor instance, editor handle, message buffer, and panic dialog callback.