Skip to content
/ confbox Public

Compact YAML, TOML, JSONC and JSON5 and INI parser and serializer

License

Notifications You must be signed in to change notification settings

unjs/confbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0bc8513 · Mar 18, 2025

History

86 Commits
Mar 1, 2025
Mar 18, 2025
Mar 18, 2025
Feb 20, 2024
Feb 20, 2024
Feb 20, 2024
Mar 2, 2025
Mar 1, 2025
Mar 1, 2025
Mar 1, 2025
Oct 6, 2024
Mar 2, 2025
Mar 1, 2025
Feb 20, 2024
Feb 20, 2024

Repository files navigation

confbox

npm version npm downloads bundle size install size

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

✨ Zero dependency and tree-shakable

✨ Types exported out of the box

✨ Preserves 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,
  parseINI,
  stringifyINI,
} from "confbox";

CDN (Deno, Bun and Browsers)

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

parseINI(text, options?)

Converts an INI string into an object.

Note: Style and indentation are not preserved currently.

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.

stringifyINI(value, options?)

Converts a JavaScript value to an INI string.

Note: Style and indentation are not preserved currently.

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

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 💛


🤖 auto updated with automd