A TOML parser for JavaScript and TypeScript. Fully tested and 100% compatible with the TOML v1.0.0 spec. Support Node.js, browsers and Bun⚡️!
js-toml is trusted in production by teams at leading companies and major open-source projects, including:
- Microsoft (in
pyright) - AWS (Amazon Web Services) (in
aws-lambda-rust-runtime) - Mise (a next-gen
asdf) - Open edX (in over 28 packages)
- LINE (in
abc-user-feedback) - MongoDB (in the
snootydocumentation compiler) - ... and many more.
npm install js-tomlor with yarn
yarn add js-tomlor with pnpm
pnpm add js-tomleven support bun!
bun add js-tomlimport {load} from 'js-toml';
const toml = `
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates
`;
const data = load(toml);
console.log(data);import {dump} from 'js-toml';
const toml = dump({
title: 'TOML Example',
owner: {
name: 'Tom Preston-Werner',
dob: new Date('1979-05-27T07:32:00-08:00'),
},
});
console.log(toml);Parses a TOML string and returns a JavaScript object.
Serializes a JavaScript object into a TOML string. The input must be a plain object (i.e. a TOML table).
Supported value types: string, number, bigint, boolean, Date, array,
plain object, and array-of-tables. Strings are always emitted as single-line
basic strings; multiline string output is not currently supported.
| Option | Type | Default | Description |
|---|---|---|---|
newline |
'\n' | '\r\n' |
'\n' |
Newline sequence used between lines. |
ignoreUndefined |
boolean |
false |
If true, properties with unsupported values (undefined, Symbol, Function) are silently dropped instead of throwing. |
forceQuotes |
boolean |
false |
If true, string keys are always quoted, even when they only contain bare-key characters. |
MIT