Skip to content

Read, write, parse and serialize new line delimited JSON in deno: http://ndjson.org/

License

Notifications You must be signed in to change notification settings

FaberVitale/deno-ndjson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

180cbb6 · May 21, 2022

History

56 Commits
May 21, 2022
Jun 2, 2021
May 21, 2022
May 21, 2022
Aug 29, 2021
May 21, 2022
May 18, 2020
May 17, 2020
May 21, 2022
May 21, 2022
May 21, 2022
May 17, 2020
May 21, 2022
May 21, 2022

Repository files navigation

deno-ndjson

Decription

Read, write, parse and serialize newline delimited json, or ndjson for short.

Usage

parseNdjson

Parses the content of a Deno.Reader.

Ignores parsing errors if options.strict is false.

async function* parseNdjson<T extends JSONData>(
  reader: Deno.Reader,
  options?: { strict: boolean },
): AsyncIterableIterator<T>;

example

import { parseNdjson } from "https://deno.land/x/[email protected]/mod.ts";

let file: Deno.File | null = null;

try {
  file = await Deno.open("<filepath_here>");

  for await (const parsed of parseNdjson(file)) {
    console.log(parsed);
  }
} catch (readError) {
  // handle error
} finally {
  file?.close();
}

source

readNdjson

Reads a Ndjson file and returns an array of parsed lines.

async function readNdjson<T extends JSONData[]>(filePath: string): Promise<T>;

example

import { readNdjson } from "https://deno.land/x/[email protected]/mod.ts";

const parsed = await readNdjson("<file_path_here>");

source

serializeNdJson

Serializes the content of an array.

function serializeNdJson(data: unknown[]): string;

example

import { serializeNdJson } from "https://deno.land/x/[email protected]/mod.ts";

const serialized: string = serializeNdJson([
  { who: "let" },
  { the: "dogs" },
  { out: "!" },
]);

source

writeNdjson

Writes the content of an array to a file in ndjson format.

Optional third argument is Deno.WriteFileOptions and is passed down to the writer.

async function writeNdjson(
  filePath: string,
  data: unknown[],
  options?: Deno.WriteFileOptions,
): Promise<void>;

example

import { writeNdjson } from "https://deno.land/x/[email protected]/mod.ts";

const toBeWritten = [
  { message: "qui", level: "info", timestamp: "2020-05-08T14:05:25.091Z" },
  { message: "que", level: "info", timestamp: "2020-05-08T14:05:25.096Z" },
  { message: "quod", level: "info", timestamp: "2020-05-08T14:05:25.104Z" },
];

await writeNdjson("<file_path_here>", toBeWritten, { append: true });

source


License

MIT

About

Read, write, parse and serialize new line delimited JSON in deno: http://ndjson.org/

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published