JSON to YAML
Convert JSON file to YAML format
Source Code
import fs from "fs";
import path from "path";
import YAML from "yaml";
const [inputPath, outputPath] = process.argv.slice(2);
if (!inputPath || !outputPath) {
console.error("Usage: inputPath outputPath");
process.exit(1);
}
try {
console.log(`Reading ${inputPath}...`);
const raw = fs.readFileSync(inputPath, "utf-8");
const data = JSON.parse(raw);
console.log(`Converting to YAML...`);
const yaml = YAML.stringify(data, {
indent: 2,
lineWidth: 120,
});
// Ensure output directory exists
const dir = path.dirname(outputPath);
if (dir && dir !== ".") {
fs.mkdirSync(dir, { recursive: true });
}
fs.writeFileSync(outputPath, yaml);
const lineCount = yaml.split("\n").length;
const isArray = Array.isArray(data);
const itemCount = isArray ? data.length : Object.keys(data).length;
console.log(`\nā Converted JSON to YAML`);
console.log(` Type: ${isArray ? "array" : "object"}`);
console.log(` ${isArray ? "Items" : "Keys"}: ${itemCount}`);
console.log(` Output lines: ${lineCount}`);
console.log(` Written to: ${outputPath}`);
console.log(
JSON.stringify({
success: true,
inputPath,
outputPath,
isArray,
itemCount,
lineCount,
})
);
} catch (error) {
console.error("Error:", error.message);
process.exit(1);
}