@aduh95/toml
TypeScript icon, indicating that this package has built-in type declarations

0.4.2 • Public • Published

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 of import:

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

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i @aduh95/toml

      Weekly Downloads

      37

      Version

      0.4.2

      License

      MIT

      Unpacked Size

      452 kB

      Total Files

      14

      Last publish

      Collaborators

      • aduh95