import { stringify } from "https://deno.land/x/simple_utility@v2.3.2/deps.pure.ts";
Converts an array of objects into a CSV string.
Examples
Default options
Default options
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
["Rick", 70],
["Morty", 14],
];
assertEquals(stringify(data), `Rick,70\r\nMorty,14\r\n`);
Give an array of objects and specify columns
Give an array of objects and specify columns
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
{ name: "Rick", age: 70 },
{ name: "Morty", age: 14 },
];
const columns = ["name", "age"];
assertEquals(stringify(data, { columns }), `name,age\r\nRick,70\r\nMorty,14\r\n`);
Give an array of objects without specifying columns
Give an array of objects without specifying columns
import { stringify } from "@std/csv/stringify";
import { assertThrows } from "@std/assert/throws";
const data = [
{ name: "Rick", age: 70 },
{ name: "Morty", age: 14 },
];
assertThrows(
() => stringify(data),
TypeError,
"No property accessor function was provided for object",
);
Give an array of objects and specify columns with headers: false
Give an array of objects and specify columns with headers: false
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
{ name: "Rick", age: 70 },
{ name: "Morty", age: 14 },
];
const columns = ["name", "age"];
assertEquals(
stringify(data, { columns, headers: false }),
`Rick,70\r\nMorty,14\r\n`,
);
Give an array of objects and specify columns with renaming
Give an array of objects and specify columns with renaming
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
{ name: "Rick", age: 70 },
{ name: "Morty", age: 14 },
];
const columns = [
{ prop: "name", header: "user name" },
"age",
];
assertEquals(
stringify(data, { columns }),
`user name,age\r\nRick,70\r\nMorty,14\r\n`,
);
Give an array of objects with nested property and specify columns
Give an array of objects with nested property and specify columns
import {
Column,
stringify,
} from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
{
age: 70,
name: {
first: "Rick",
last: "Sanchez",
},
},
{
age: 14,
name: {
first: "Morty",
last: "Smith",
},
},
];
const columns: Column[] = [
["name", "first"],
"age",
];
assertEquals(
stringify(data, { columns }),
`first,age\r\nRick,70\r\nMorty,14\r\n`,
);
Give an array of objects with nested property and specify columns
with renaming
Give an array of objects with nested property and specify columns with renaming
import {
Column,
stringify,
} from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
{
age: 70,
name: {
first: "Rick",
last: "Sanchez",
},
},
{
age: 14,
name: {
first: "Morty",
last: "Smith",
},
},
];
const columns: Column[] = [
{ prop: ["name", "first"], header: "first name" },
"age",
];
assertEquals(
stringify(data, { columns }),
`first name,age\r\nRick,70\r\nMorty,14\r\n`,
);
Give an array of string arrays and specify columns with renaming
Give an array of string arrays and specify columns with renaming
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
["Rick", 70],
["Morty", 14],
];
const columns = [
{ prop: 0, header: "name" },
{ prop: 1, header: "age" },
];
assertEquals(
stringify(data, { columns }),
`name,age\r\nRick,70\r\nMorty,14\r\n`,
);
Emit TSV (tab-separated values) with separator: "\t"
Emit TSV (tab-separated values) with separator: "\t"
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [
["Rick", 70],
["Morty", 14],
];
assertEquals(stringify(data, { separator: "\t" }), `Rick\t70\r\nMorty\t14\r\n`);
Prepend a byte-order mark with bom: true
Prepend a byte-order mark with bom: true
import { stringify } from "@std/csv/stringify";
import { assertEquals } from "@std/assert/equals";
const data = [["Rick", 70]];
assertEquals(stringify(data, { bom: true }), "\ufeffRick,70\r\n");