Skip to main content
The Deno 2 Release Candidate is here
Learn more
Module

x/simple_utility/deps.pure.ts>stringify

Simplify processing for Deno.
Latest
function stringify
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

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

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

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

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

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

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

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

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"

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

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");

Parameters

data: DataItem[]

The source data to stringify. It's an array of items which are plain objects or arrays.

optional
options: StringifyOptions

Options for the stringification.

Returns

string

A CSV string.