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!我们不想将非标准的 API 添加到这个 crate 中。

    • 如果你的接口定义在任何 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 来确保绑定看起来正确。