/// import { json2csv } from './JSON2CSVBase'; import JSON2CSVBase from './JSON2CSVBase'; import { Transform, TransformOptions } from 'stream'; declare class JSON2CSVTransform extends Transform { // implements JSON2CSVBase constructor(opts?: json2csv.Options, transformOpts?: TransformOptions); /** * Transforms an incoming json data to csv and pushes it downstream. * * @param {object} data JSON object to be converted in a CSV row */ protected pushLine(data: T): void; /******************************************************************************* * Everything below is copy-pasted from JSON2CSVBase and should be keep in sync * ********************************************************************************/ /** * Check passing opts and set defaults. * * @param {json2csv.Options} opts Options object containing fields, * delimiter, default value, quote mark, header, etc. * @returns {json2csv.Options} preprocessed Options object */ protected preprocessOpts(opts?: json2csv.Options) : json2csv.Options; /** * Create the title row with all the provided fields as column headings * * @returns {string} titles as a string */ protected getHeader(): string; /** * Preprocess each object according to the give opts (unwind, flatten, etc.). * * @param {object} row JSON object to be converted in a CSV row */ protected preprocessRow(row: T): object; /** * Create the content of a specific CSV row * * @param {object} row JSON object to be converted in a CSV row * @returns {string} CSV string (row) */ protected processRow(row: T): string; /** * Create the content of a specfic CSV row cell * * @param {object} row JSON object representing the CSV row that the cell belongs to * @param {object} fieldInfo Details of the field to process to be a CSV cell * @returns {string} CSV string (cell) */ protected processCell(row: T, fieldInfo: json2csv.FieldInfo) : string; /** * Create the content of a specfic CSV row cell * * @param {object} row JSON object representing the CSV row that the cell belongs to * @param {json2csv.FieldInfo} fieldInfo Details of the field to process to be a CSV cell * @returns {any} Field value */ protected getValue(row: T, fieldInfo: json2csv.FieldInfo): any; /** * Create the content of a specfic CSV row cell * * @param {any} value Value to be included in a CSV cell * @param {Boolean} stringify Details of the field to process to be a CSV cell * @returns {string} Value stringified and processed */ protected processValue(value: any, stringify: Boolean): string; /** * Performs the flattening of a data row recursively * * @param {object} dataRow Original JSON object * @param {string} separator Separator to be used as the flattened field name * @returns {object} Flattened object */ protected flatten(dataRow: T, separator: string): object; /** * Performs the unwind recursively in specified sequence * * @param {object[]} dataRow Original JSON object * @param {string[]} unwindPaths The paths as strings to be used to deconstruct the array * @returns {Array} Array of objects containing all rows after unwind of chosen paths */ protected unwindData(dataRow: Array, unwindPaths: Array): Array; } export default JSON2CSVTransform;