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

typescript-wasm-bindgen

即时解析 TypeScript 文件并生成 wasm-bindgen JavaScript 导入

2 个版本

0.1.1 2021年3月31日
0.1.0 2021年3月5日

#17 in #fly

MIT 许可证

22KB
417 代码行

typescript-wasm-bindgen

正在进行中,许多方面尚未实现。

直接在您的 wasm rust 应用中导入 TypeScript 定义。

用法

// 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();
// }

示例

简单

依赖

~5–11MB
~124K SLoC