toon-package

TOON Converter Example

Complete example demonstrating format conversion using @programsmagic/toon-converter.

Overview

This example shows how to:

Prerequisites

Step-by-Step Setup

Step 1: Install Dependencies

cd examples/toon-converter
pnpm install

Step 2: Create Sample Data

Create a file input.json:

{
  "users": [
    {"id": 1, "name": "Alice", "email": "alice@example.com"},
    {"id": 2, "name": "Bob", "email": "bob@example.com"}
  ]
}

Step 3: Run Conversion

# Convert JSON to TOON
node convert.js input.json output.toon

# Convert with minimization
node convert.js input.json output.toon --minimize

# Convert to CSV
node convert.js input.json output.csv --to csv

# Convert to YAML
node convert.js input.json output.yaml --to yaml

Complete Code Example

convert.js

import { convertFile } from '@programsmagic/toon-converter';
import { readFileSync, writeFileSync } from 'fs';

const [inputFile, outputFile, ...options] = process.argv.slice(2);
const minimize = options.includes('--minimize');
const toFormat = options.find(opt => opt.startsWith('--to='))?.split('=')[1] || 'toon';

const input = readFileSync(inputFile, 'utf-8');
const output = await convertFile(inputFile, outputFile, {
  from: 'json',
  to: toFormat,
  minimize,
});

console.log(`Converted ${inputFile} to ${outputFile}`);
console.log(`Format: ${toFormat}`);
console.log(`Minimized: ${minimize}`);

Expected Output

JSON Input

{
  "users": [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"}
  ]
}

TOON Output

users [
  id 1 name Alice
  id 2 name Bob
]

TOON Output (Minimized)

users [id 1 name Alice id 2 name Bob]

CSV Output

id,name
1,Alice
2,Bob

Usage Examples

Basic Conversion

node convert.js input.json output.toon

Minimized Conversion

node convert.js input.json output.toon --minimize

Format Selection

# Convert to CSV
node convert.js input.json output.csv --to=csv

# Convert to YAML
node convert.js input.json output.yaml --to=yaml

Troubleshooting

File Not Found

Problem: Error “File not found”.

Solution:

Invalid Format

Problem: Error “Invalid format”.

Solution:

Conversion Errors

Problem: Conversion fails.

Solution:

Next Steps