json-toon-converter-compact
v1.0.2
Published
TypeScript-based converter from JSON to TOON (Token-Oriented Object Notation)
Maintainers
Readme
json-toon-converter-compact
Librería TypeScript para convertir datos entre JSON y TOON (Token‑Oriented Object Notation) y validar entradas.
Instalación
npm install json-toon-converter-compactUso Rápido
ESM
import { jsonToToon, toonToJson, validateToon, validateJson } from 'json-toon-converter-compact'
const toon = jsonToToon({ user: { name: 'Benja', id: 1 } })
const obj = toonToJson('user=(name=Benja\nid=1)')
const errToon = validateToon(toon) // null si es válido
const errJson = validateJson('{"a":1}') // null si es válidoCJS
const { jsonToToon, toonToJson, validateToon, validateJson } = require('json-toon-converter-compact')API
jsonToToon(input: JSONValue | unknown): string- Serializa objetos/arrays/primitivos JSON a TOON. Objetos anidados se representan entre paréntesis, arrays con
|.
- Serializa objetos/arrays/primitivos JSON a TOON. Objetos anidados se representan entre paréntesis, arrays con
toonToJson(toon: string): JSONValue- Parsea TOON respetando paréntesis y
|, con inferencia básica de números y booleanos.
- Parsea TOON respetando paréntesis y
validateToon(toon: string): string | null- Valida sintaxis TOON (p.ej. balance de paréntesis, entrada no JSON). Devuelve
nullsi es válido o mensaje de error.
- Valida sintaxis TOON (p.ej. balance de paréntesis, entrada no JSON). Devuelve
validateJson(jsonStr: string): string | null- Valida una cadena JSON usando
JSON.parse. Devuelvenullsi es válido o mensaje de error.
- Valida una cadena JSON usando
Ejemplos
// JSON → TOON
jsonToToon({
name: 'Alice',
age: 28,
active: true,
skills: ['JavaScript', 'TypeScript'],
address: { city: 'Madrid', country: 'Spain' }
})
// ->
// name=Alice\nage=28\nactive=true\nskills=JavaScript|TypeScript\naddress=(city=Madrid\ncountry=Spain)
// TOON → JSON
toonToJson('name=Alice\nage=28\nactive=true')
// -> { name: 'Alice', age: 28, active: true }Tipos
La librería exporta JSONValue para tipar entradas y salidas:
type JSONValue = string | number | boolean | null | JSONValue[] | { [k: string]: JSONValue }Limitaciones
- No se escapan caracteres especiales en strings (
|,=,(,)). Evita incluirlos en valores de texto. - El parser infiere números y booleanos de forma simple; cadenas se mantienen como texto.
Licencia
MIT
