README
toml
This package contains methods for parsing TOML documents and converting JS objects to TOML.
Usage
Node.js
import * as TOML from "@aduh95/toml";
console.log(
TOML.parse(`
[package]
name = "@aduh95/toml"
version = "0.1.0"
[dependencies]
serde-transcode = "1.1.0"
serde_json = "1.0.40"
toml = "0.5.3"
wasm-bindgen = "0.2"
`)
);
This outputs:
{
"dependencies": {
"serde-transcode": "1.1.0",
"serde_json": "1.0.40",
"toml": "0.5.3",
"wasm-bindgen": "0.2"
},
"package": {
"name": "@aduh95/toml",
"version": "0.1.0"
}
}
You can also use the stringify
method that outputs a TOML string:
import * as TOML from "@aduh95/toml";
console.log(
TOML.stringify({
dependencies: {
"serde-transcode": "1.1.0",
serde_json: "1.0.40",
toml: "0.5.3",
"wasm-bindgen": "0.2",
},
package: {
name: "@aduh95/toml",
version: "0.1.0",
},
})
);
If you are not using ECMAScript modules, you can use
require
instead ofimport
:const TOML = require("@aduh95/toml"); TOML.parse('Hello = "World!"');
Web browser
Works great on workers!
Main difference with Node.js API is that the WASM fetching and compilation
happen asynchronously. You must call the TOML.default
function before using
the parse
and stringify
methods.
import * as TOML from "https://unpkg.com/@aduh95/toml/web/toml2js.js";
// Init the module
await TOML.default();
// Optionally, you can provide the absolute path to the WASM file
// await TOML.default("https://unpckg.com/@aduh95/toml/web/toml2js_bg.wasm");
const tomlString = TOML.stringify({
hello: "world!",
});
const jsObject = TOML.parse(`pi=3.1415`);
Deno
Works same as the browser API.
If you are using the CDN version, you need to pass the allow-net
flag in order
for TOML.default
to download the WASM file.
If you are working from your local file system, you can pass the WASM file
directly to the TOML.default
function in addition with the --allow-read
CLI
flag.
import * as TOML from "/path/to/toml2js.js";
// Init the module when the wasm file is on the file system
await TOML.default(await Deno.readFile("/path/to/toml2js_bg.wasm"));
Limitations
No support for dates.
Build
You need NodeJS and wasm-pack.
$ npm run build
$ npm run test