*how* is web_sys auto generating its bindings?

I believe the web_sys bindings are auto generated from IDL files. My question is:

  1. where is it pulling these IDL files from ?

  2. what rules / logic is it using for IDL parse tree -> web_sys crate Rust code ?

Thanks!

XY problem: I'm interested in goofing around / playing with IDL -> codegen.

Is this helpful to you? This is the crate wasm-bindgen uses for converting WebIDL files to wasm-bindgen compatible code.