Logo of confbox

confbox

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

Config parsers for:

YAML (with js-yaml)

TOML (with smol-toml)

JSONC (with jsonc-parser)

JSON5 (with json5)

With perfect bundling:

✨ Types exported out of the box

✨ Zero config and compact redistribution

✨ Dual ESM/CJS build

✨ Consistent and tested API

✨ Handpicked best libraries (bundle+perf)

Use unjs/c12 for a full featured configuration loader!

Usage

Install package:

# ✨ Auto-detect
npx nypm i confbox

# npm
npm install confbox

# yarn
yarn add confbox

# pnpm
pnpm install confbox

# bun
bun install confbox

Import:

ESM (Node.js, Bun)

import {
  parseJSON5,
  parseJSONC,
  parseYAML,
  stringifyYAML,
  parseTOML,
} from "confbox";

CommonJS (Legacy Node.js)

const {
  parseJSON5,
  parseJSONC,
  parseYAML,
  stringifyYAML,
  parseTOML,
} = require("confbox");

CDN (Deno, Bun and Browsers)

import {
  parseJSON5,
  parseJSONC,
  parseYAML,
  stringifyYAML,
  parseTOML,
} from "https://esm.sh/confbox";

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.

stringifyYAML(value, options?)

Converts a JavaScript value to a YAML string.

Contribution

Local development
  • 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 💛