UNPKG

jsonweaver

Version:

A simple utility to transform JSON data into CSV, XML, YAML, JSONLines and Markdown table formats.

52 lines (42 loc) 1.6 kB
import { Readable } from 'stream'; type JsonObject = Record<string, any>; type JsonArray = JsonObject[]; type ToXmlOptions = { maxDepth?: number; arrayHandling?: 'wrap' | 'index'; prettyPrint?: boolean; }; type Field = { label: string; value: string | ((row: Record<string, any>) => string); }; type FieldGenerator = (json: JsonArray) => Field[]; type toYamlOptions = { sortKeys?: boolean; noRefs?: boolean; }; type ToJsonLinesOptions = { indent?: number; excludeKeys?: string[]; }; type JsonLinesObject = { [key: string]: any; }; declare function toJsonLines(jsonArray: JsonLinesObject[], options?: ToJsonLinesOptions): string; declare function toJsonLinesStream(jsonArray: object[]): Readable; declare function validateJsonSchema(json: JsonObject, schema: JsonObject): void; declare function toMarkdownTable(json: JsonArray): string; declare function batchProcess<T>(data: JsonArray, batchSize: number, processor: (batch: JsonArray, index: number) => Promise<T> | T): Promise<T[]>; declare function toYaml(jsonInput: string | JsonObject, options?: toYamlOptions): string; declare function toXML(json: JsonObject, options?: ToXmlOptions): string; declare const jsonweaver: { validateJsonSchema: typeof validateJsonSchema; toJsonLinesStream: typeof toJsonLinesStream; toMarkdownTable: typeof toMarkdownTable; batchProcess: typeof batchProcess; toJsonLines: typeof toJsonLines; toYaml: typeof toYaml; toCSV: (Json: JsonArray, fieldGenerator?: FieldGenerator) => string; toXML: typeof toXML; }; export { jsonweaver };