#wasm-bindgen #typescript #import #definition #fly #parse #typescript-wasm-bindgen

macro typescript-wasm-bindgen-macros

Parse typescript file and generates wasm-bindgen javascript import on the fly

2 releases

0.1.1 Mar 31, 2021
0.1.0 Mar 5, 2021

#20 in #fly

22 downloads per month
Used in typescript-wasm-bindgen

MIT license

20KB
411 lines

typescript-wasm-bindgen

WIP, many aspects not yet implemented.

Import typescript definitions directly in your wasm rust app.

Usage

// src/index.ts

export function test(): void {
  console.log("test");
}

build.rs

// build.rs

use std::path::PathBuf;

use typescript_wasm_bindgen::build_typescript_wasm_binding;

fn main() {
    build_typescript_wasm_binding(&PathBuf::from("./ts/test_function.ts"), "test").unwrap();
}
// lib.rs

use typescript_wasm_bindgen::import_typescript_wasm_binding;
use wasm_bindgen::prelude::{wasm_bindgen, JsValue};

import_typescript_wasm_binding!("test_function");

proc_macro

// wasm/src/lib.rs

use typescript_wasm_bindgen::typescript;
use wasm_bindgen::prelude::wasm_bindgen;

typescript!("../src/index.ts", "index");

// `typescript!` macro expands like following:
//
// #[wasm_bindgen(module = "index")]
// extern "C" {
//     fn test();
// }

Examples

simple

Dependencies

~5–11MB
~125K SLoC