feedbaby-client
Version:
Client for the FeedBaby App
26 lines (25 loc) • 821 B
TypeScript
/// <reference types="node" />
import { Parser } from "json2csv";
import { json2csv } from "json2csv/JSON2CSVBase";
interface File {
getFilename(): string;
}
export interface SaveableFile<T> extends File {
save(data: T): Buffer;
}
export interface ReadableFile<T> extends File {
read(data: Buffer): Promise<T>;
}
export declare abstract class CsvFile<T> implements SaveableFile<T[]>, ReadableFile<T[]> {
private readonly parser;
private static readonly CRLF;
private static readonly DELIMITER;
constructor(parser: Parser<T>);
abstract getFilename(): string;
protected static createOptions<T>(headers: string[]): json2csv.Options<T>;
private static spaceHeaders;
private static addTrailingNewline;
save(data: T[]): Buffer;
read(data: Buffer): Promise<T[]>;
}
export {};