Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

confbox

unjs20.4mMIT0.1.8TypeScript support: included

Compact and high quality YAML, TOML, JSONC and JSON5 parsers

yaml, toml, jsonc, json5, unjs, config

readme

confbox

npm version npm downloads bundle size

Parsing and serialization utils for YAML (js-yaml), TOML (smol-toml), JSONC (jsonc-parser), JSON5 (json5), and JSON.

✨ Zero dependency and tree-shakable

✨ Types exported out of the box

✨ Presrves code style (indentation and whitespace)

[!TIP] Use unjs/c12 for a full featured configuration loader!

Usage

Install package:

# ✨ Auto-detect
npx nypm install confbox

# npm
npm install confbox

# yarn
yarn add confbox

# pnpm
pnpm install confbox

# bun
bun install confbox

# deno
deno install confbox

Import:

ESM (Node.js, Bun, Deno)

import {
  parseJSON5,
  stringifyJSON5,
  parseJSONC,
  stringifyJSONC,
  parseYAML,
  stringifyYAML,
  parseJSON,
  stringifyJSON,
  parseTOML,
  stringifyTOML,
} from "confbox";

CommonJS (Legacy Node.js)

const {
  parseJSON5,
  stringifyJSON5,
  parseJSONC,
  stringifyJSONC,
  parseYAML,
  stringifyYAML,
  parseJSON,
  stringifyJSON,
  parseTOML,
  stringifyTOML,
} = require("confbox");

CDN (Deno, Bun and Browsers)

import {
  parseJSON5,
  stringifyJSON5,
  parseJSONC,
  stringifyJSONC,
  parseYAML,
  stringifyYAML,
  parseJSON,
  stringifyJSON,
  parseTOML,
  stringifyTOML,
} from "https://esm.sh/confbox";

parseJSON(text, options?)

Converts a JSON string into an object.

Indentation status is auto-detected and preserved when stringifying back using stringifyJSON

parseJSON5(text, options?)

Converts a JSON5 string into an object.

parseJSONC(text, options?)

Converts a JSONC string into an object.

parseTOML(text)

Converts a TOML string into an object.

parseYAML(text, options?)

Converts a YAML string into an object.

stringifyJSON(value, options?)

Converts a JavaScript value to a JSON string.

Indentation status is auto detected and preserved when using value from parseJSON.

stringifyJSON5(value, options?)

Converts a JavaScript value to a JSON5 string.

stringifyJSONC(value, options?)

Converts a JavaScript value to a JSONC string.

stringifyTOML(value)

Converts a JavaScript value to a TOML string.

stringifyYAML(value, options?)

Converts a JavaScript value to a YAML string.

Contribution

<summary>Local development</summary>
  • Clone this repository
  • Install the latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run tests using pnpm dev or pnpm test

License

Published under the MIT license. Made by @pi0 and community 💛


🤖 auto updated with automd

changelog

Changelog

v0.1.8

compare changes

🏡 Chore

❤️ Contributors

  • Pooya Parsa (@pi0)

v0.1.7

compare changes

🚀 Enhancements

  • Json utilities with format and whitespace preservation (#7)
  • Preserve style for all utils (d4665b4)

🩹 Fixes

  • Fix stringifyTOML types (40e1ca4)

🏡 Chore

❤️ Contributors

  • Pooya Parsa (@pi0)

v0.1.6

compare changes

🩹 Fixes

  • Fix stringifyTOML types (40e1ca4)

❤️ Contributors

  • Pooya Parsa (@pi0)

v0.1.5

compare changes

🩹 Fixes

🏡 Chore

  • Apply automated updates (1475b7f)

❤️ Contributors

  • Pooya Parsa (@pi0)

v0.1.4

compare changes

🚀 Enhancements

🏡 Chore

❤️ Contributors

  • Pooya Parsa (@pi0)

v0.1.3

compare changes

v0.1.2

compare changes

🚀 Enhancements

  • Switch to smol-toml for toml parsing (#2)

🏡 Chore

❤️ Contributors

  • Uncenter
  • Pooya Parsa (@pi0)

v0.1.1

💅 Refactors

🏡 Chore

✅ Tests

  • Add test with full coverage (7bc81b8)

❤️ Contributors

  • Pooya Parsa (@pi0)