A WebAssembly-powered library to efficiently update TOML files, based on Rust's toml_edit
crate.
The primary function exported for JavaScript usage is updateTomlValues
. Take a look at the example
folder.
import { updateTomlValues } from "@shopify/toml-patch";
const originalToml = `
[package]
name = "my-package"
version = "0.1.0"
[dependencies]
serde = "1.0"
`;
try {
const updatedToml = updateTomlValues(
originalToml,
[
[['package', 'version'], '0.2.0'],
[['dependencies', 'serde'], undefined],
[['new_table', 'key'], 'new value'],
]
);
console.log(updatedToml);
/*
Output:
[package]
name = "my-package"
version = "0.2.0"
[dependencies]
[new_table]
key = "new value"
*/
} catch (error) {
console.error("Failed to update TOML:", error);
}
This project uses Rust and wasm-pack
.
- Install Rust: https://www.rust-lang.org/tools/install
- Install
wasm-pack
:cargo install wasm-pack
- Build:
wasm-pack build --target nodejs --release --scope="shopify"
- Test:
wasm-pack test --node