@jomscode21/json-to-csv-lite
v1.0.0
Published
Fast, lightweight JSON-to-CSV converter for Node.js and CLI use
Maintainers
Readme
json-to-csv-lite
Fast, lightweight JSON-to-CSV converter for Node.js and CLI use.
- Zero runtime dependencies
- Works as a library and command-line tool
- Supports CommonJS and ESM imports
- Includes TypeScript declarations
Installation
npm install @jomscode21/json-to-csv-liteLibrary Usage
CommonJS
const { jsonToCsv } = require("@jomscode21/json-to-csv-lite");
const data = [
{ name: "Ana", age: 24, city: "Cebu" },
{ name: "Ben", age: 28, city: "Davao" },
];
const csv = jsonToCsv(data);
console.log(csv);ESM
import { jsonToCsv } from "@jomscode21/json-to-csv-lite";
const data = [
{ name: "Ana", age: 24, city: "Cebu" },
{ name: "Ben", age: 28, city: "Davao" },
];
console.log(jsonToCsv(data));TypeScript
import { jsonToCsv, type JsonToCsvOptions } from "@jomscode21/json-to-csv-lite";
const data = [
{ name: "Ana", age: 24, city: "Cebu" },
{ name: "Ben", age: 28, city: "Davao" },
];
const options: JsonToCsvOptions = {
headers: ["city", "name", "age"],
includeHeaders: true,
delimiter: ",",
quote: '"',
eol: "\n",
};
console.log(jsonToCsv(data, options));API
jsonToCsv(input, options?)
Converts a JSON object or array of objects into CSV.
Parameters
input(Record<string, unknown> | Record<string, unknown>[])options(JsonToCsvOptions, optional)
Options
headers?: string[]
Use a custom header order. If omitted, headers are inferred from first-seen keys across rows.includeHeaders?: boolean(default:true)
Include or skip the header row.delimiter?: string(default:,)
CSV field separator.quote?: string(default:")
Quote character used when escaping fields.eol?: string(default:\n)
End-of-line sequence.
Returns
stringCSV output
Throws
TypeErrorifinputis not an object/array of objectsTypeErrorif any row in an input array is not a plain object
CLI Usage
After install, run:
json-to-csv-lite --helpFrom a JSON argument
json-to-csv-lite '[{"name":"Ana","age":24},{"name":"Ben","age":28}]'From stdin
cat data.json | json-to-csv-litePowerShell:
Get-Content -Raw .\data.json | json-to-csv-liteBehavior Notes
nullandundefinedbecome empty CSV cells- Nested objects/arrays are converted using
JSON.stringify - Values containing delimiter, quotes, or line breaks are escaped
- Empty array input returns an empty string
Local Development
npm install
npm run build
npm testLicense
MIT
