No description
Find a file
2025-04-14 11:32:52 -04:00
.gitignore feat: first release 2025-04-11 19:27:15 -04:00
bun.lock feat: first release 2025-04-11 19:27:15 -04:00
bunfig.toml feat: first release 2025-04-11 19:27:15 -04:00
CHANGELOG.md chore(version): v0.1.3 2025-04-14 11:32:52 -04:00
cog.toml feat: first release 2025-04-11 19:27:15 -04:00
index.ts fix: use raw string to prevent quote issues 2025-04-14 11:31:59 -04:00
package.json chore(version): v0.1.3 2025-04-14 11:32:52 -04:00
README.md docs: fix example 2025-04-11 19:42:35 -04:00
tsconfig.json feat: first release 2025-04-11 19:27:15 -04:00

tmpl-build-and-load

Wrapper around the Bun build API to compile frontend files (JS/TS, JSX/TSX, CSS, SASS, HTML) into browser native versions, with minification and code splitting enabled by default.

How to use

Cargo

Add the following to the build.rs script:

use std::io::Write;
use std::process::Command;
use std::{env, io};

fn main() {
    let out_dir = env::var("OUT_DIR").unwrap();

    let output = Command::new("bun")
        .args([
            "run",
            "tmpl-build-and-load",
            "--outdir",
            out_dir.as_str(),
            "--globs",
            "static/**/*.html", // change depending of where your assets are
        ])
        .output()
        .unwrap();

    let _ = io::stdout().write_all(&output.stdout);
    if !output.status.success() {
        let _ = io::stderr().write_all(&output.stderr);
        panic!("\nFailed to run command\n");
    }

    println!("Build completed successfully!");

    println!("cargo::rerun-if-changed=build.rs");
    println!("cargo::rerun-if-changed=package.json");
    println!("cargo::rerun-if-changed=static"); // change depending of where your assets are
}