web-sys 中支援更多 Web API

  1. 確保描述介面的 .webidl 檔案存在於 crates/web-sys/webidls/enabled 目錄中的某處。

    首先,檢查我們是否有你的 API 的 WebIDL 定義檔

    grep -rn MyWebApi crates/web-sys/webidls
    
    • 如果您的介面定義在 crates/web-sys/webidls/enabled 目錄內的 .webidl 檔案中,請跳至步驟 (3)。

    • 如果您的介面尚未在任何檔案中定義,請在相關標準中找到 WebIDL 定義,並將其作為新的 .webidl 檔案新增至 crates/web-sys/webidls/enabled。 請確保它是一個標準的 Web API!我們不希望在此 crate 中新增非標準的 API。

    • 如果您的介面定義在任何 crates/web-sys/webidls/unavailable_* 目錄中的 .webidl 檔案中,您需要將它移動到 crates/web-sys/webidls/enabled 中,例如:

      cd crates/web-sys
      git mv webidls/unavailable_enum_ident/MyWebApi.webidl webidls/enabled/MyWebApi.webidl
      
  2. 重新產生 web-sys crate 自動產生的綁定,您可以使用以下指令執行此操作

    cd crates/web-sys
    cargo run --release --package wasm-bindgen-webidl -- webidls src/features ./Cargo.toml
    

    然後,您可以使用 git diff 來確保綁定看起來正確。