Add WASM to website
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
Isaac Mills 2025-07-18 09:21:11 -06:00
parent 8c17859a11
commit cf03e29315
Signed by: fnmain
GPG key ID: B67D7410F33A0F61
10 changed files with 243 additions and 4 deletions

6
thecockpit/.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
/target
**/*.rs.bk
Cargo.lock
bin/
pkg/
wasm-pack.log

27
thecockpit/Cargo.toml Normal file
View file

@ -0,0 +1,27 @@
[package]
name = "thecockpit"
version = "0.1.0"
authors = ["Isaac Mills <rooster0055@protonmail.com>"]
edition = "2018"
[lib]
crate-type = ["cdylib", "rlib"]
[features]
default = ["console_error_panic_hook"]
[dependencies]
wasm-bindgen = "0.2.84"
# The `console_error_panic_hook` crate provides better debugging of panics by
# logging them with `console.error`. This is great for development, but requires
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying.
console_error_panic_hook = { version = "0.1.7", optional = true }
[dev-dependencies]
wasm-bindgen-test = "0.3.34"
[profile.release]
# Tell `rustc` to optimize for small code size.
opt-level = "s"

15
thecockpit/package.json Normal file
View file

@ -0,0 +1,15 @@
{
"name": "thecockpit",
"version": "1.0.0",
"description": "",
"scripts": {
"build": "wasm-pack build --target web"
},
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "pnpm@10.11.0",
"devDependencies": {
"wasm-pack": "^0.13.1"
}
}

13
thecockpit/src/lib.rs Normal file
View file

@ -0,0 +1,13 @@
mod utils;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
fn alert(s: &str);
}
#[wasm_bindgen]
pub fn greet() {
alert("Hello, thecockpit!");
}

10
thecockpit/src/utils.rs Normal file
View file

@ -0,0 +1,10 @@
pub fn set_panic_hook() {
// When the `console_error_panic_hook` feature is enabled, we can call the
// `set_panic_hook` function at least once during initialization, and then
// we will get better error messages if our code ever panics.
//
// For more details see
// https://github.com/rustwasm/console_error_panic_hook#readme
#[cfg(feature = "console_error_panic_hook")]
console_error_panic_hook::set_once();
}