Skip to content

Commit

Permalink
ts: generate ts wasm bindings (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
HideBa authored Jan 23, 2025
1 parent a9a2b78 commit 4356c41
Show file tree
Hide file tree
Showing 28 changed files with 1,118 additions and 1,613 deletions.
16 changes: 8 additions & 8 deletions src/rust/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ pre-commit:
.PHONY: check-common
check-common:
cargo fmt
cargo clippy --fix --allow-dirty --workspace --all-targets --all-features --exclude wasm
cargo clippy --fix --allow-dirty --workspace --all-targets --all-features --exclude fcb_wasm
cargo clippy --fix --allow-dirty -p wasm --target wasm32-unknown-unknown
# cargo machete --all-features --workspace --exclude wasm
cargo nextest run --all-features --workspace --exclude wasm
cargo check --all-features --workspace --exclude wasm
cargo build --workspace --all-features --exclude wasm
cargo nextest run --all-features --workspace --exclude fcb_wasm
cargo check --all-features --workspace --exclude fcb_wasm
cargo build --workspace --all-features --exclude fcb_wasm

.PHONY: check-wasm
check-wasm:
cargo clippy --fix --allow-dirty -p wasm --target wasm32-unknown-unknown
cargo clippy --fix --allow-dirty -p fcb_wasm --target wasm32-unknown-unknown
# cargo nextest run -p wasm --target wasm32-unknown-unknown
cargo check -p wasm --target wasm32-unknown-unknown
cargo build -p wasm --target wasm32-unknown-unknown
cargo check -p fcb_wasm --target wasm32-unknown-unknown
cargo build -p fcb_wasm --target wasm32-unknown-unknown

.PHONY: ser
ser:
Expand All @@ -40,5 +40,5 @@ build-fcb_core:

.PHONY: wasm-build
wasm-build:
wasm-pack build --target web --debug
cd wasm && wasm-pack build --target web --debug --out-dir ../ts
# cargo build --target web --release
2 changes: 1 addition & 1 deletion src/rust/wasm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "wasm"
name = "fcb_wasm"
version = "0.1.0"
edition = "2021"

Expand Down
2 changes: 2 additions & 0 deletions src/ts/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dist/
node_modules/
80 changes: 80 additions & 0 deletions src/ts/fcb_wasm.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/* tslint:disable */
/* eslint-disable */
export class AsyncFeatureIter {
private constructor();
free(): void;
header(): any;
/**
* Number of selected features (might be unknown)
*/
features_count(): number | undefined;
/**
* Read next feature
*/
next(): Promise<any | undefined>;
cur_cj_feature(): any;
}
/**
* FlatCityBuf dataset HTTP reader
*/
export class HttpFcbReader {
free(): void;
constructor(url: string);
header(): any;
/**
* Select all features.
*/
select_all(): Promise<AsyncFeatureIter>;
/**
* Select features within a bounding box.
*/
select_bbox(min_x: number, min_y: number, max_x: number, max_y: number): Promise<AsyncFeatureIter>;
}

export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;

export interface InitOutput {
readonly memory: WebAssembly.Memory;
readonly __wbg_httpfcbreader_free: (a: number, b: number) => void;
readonly __wbg_asyncfeatureiter_free: (a: number, b: number) => void;
readonly httpfcbreader_new: (a: number, b: number) => any;
readonly httpfcbreader_header: (a: number) => [number, number, number];
readonly httpfcbreader_select_all: (a: number) => any;
readonly httpfcbreader_select_bbox: (a: number, b: number, c: number, d: number, e: number) => any;
readonly asyncfeatureiter_header: (a: number) => [number, number, number];
readonly asyncfeatureiter_features_count: (a: number) => number;
readonly asyncfeatureiter_next: (a: number) => any;
readonly asyncfeatureiter_cur_cj_feature: (a: number) => [number, number, number];
readonly __wbindgen_malloc: (a: number, b: number) => number;
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
readonly __wbindgen_exn_store: (a: number) => void;
readonly __externref_table_alloc: () => number;
readonly __wbindgen_export_4: WebAssembly.Table;
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
readonly __wbindgen_export_6: WebAssembly.Table;
readonly __externref_table_dealloc: (a: number) => void;
readonly closure283_externref_shim: (a: number, b: number, c: any) => void;
readonly closure384_externref_shim: (a: number, b: number, c: any, d: any) => void;
readonly __wbindgen_start: () => void;
}

export type SyncInitInput = BufferSource | WebAssembly.Module;
/**
* Instantiates the given `module`, which can either be bytes or
* a precompiled `WebAssembly.Module`.
*
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
*
* @returns {InitOutput}
*/
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;

/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
*
* @returns {Promise<InitOutput>}
*/
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
Loading

0 comments on commit 4356c41

Please sign in to comment.