toml-patch
TypeScript icon, indicating that this package has built-in type declarations

0.2.3 • Public • Published

toml-patch

Patch, parse, and stringify TOML.

Installation

toml-patch is dependency-free and can be installed via npm or yarn.

$ npm install --save toml-patch

For browser usage, you can use unpkg:

<script src="https://unpkg.com/toml-patch"></script>

API

# patch(existing, updated)

Patch an existing TOML string with the given updated JS/JSON value, while attempting to retain the format of the existing document, including comments, indentation, and structure.

const TOML = require('toml-patch');
const assert = require('assert');
 
const existing = `
# This is a TOML document
 
title = "TOML example"
owner.name = "Bob"
`
const patched = TOML.patch(existing, {
  title: 'TOML example',
  owner: {
    name: 'Tim'
  }
});
 
assert.strictEqual(patched, `
# This is a TOML document
 
title = "TOML example"
owner.name = "Tim"
`);

# parse(value)

Parse a TOML string into a JS/JSON value.

const TOML = require('toml-patch');
const assert = require('assert');
 
const parsed = TOML.parse(`
# This is a TOML document.
 
title = "TOML Example"
 
[owner]
name = "Tim"`);
 
assert.deepStrictEqual(parsed, {
  title: 'TOML Example',
  owner: {
    name: 'Tim'
  }
});

# stringify(value[, options])

Convert a JS/JSON value to a TOML string. options can be provided for high-level formatting guidelines that follows prettier's configuration.

options

  • [printWidth = 80] - (coming soon)
  • [trailingComma = false] - Add trailing comma to inline tables
  • [bracketSpacing = true] - true: { key = "value" }, false: {key = "value"}
const TOML = require('toml-patch');
const assert = require('assert');
 
const toml = TOML.stringify({
  title: 'TOML Example',
  owner: {
    name: 'Tim'
  }
});
 
assert.strictEqual(toml, 
`title = "TOML Example"
 
[owner]
name = "Tim"`);

Development

Build Status

Dependents (3)

Package Sidebar

Install

npm i toml-patch

Weekly Downloads

140

Version

0.2.3

License

MIT

Unpacked Size

419 kB

Total Files

9

Last publish

Collaborators

  • timhall