@flatfile/plugin-delimiter-extractor
Version:
A plugin for parsing .delimiter files in Flatfile.
54 lines (49 loc) • 1.89 kB
text/typescript
import * as _flatfile_listener from '@flatfile/listener';
import { Flatfile } from '@flatfile/api';
import { WorkbookCapture } from '@flatfile/util-extractor';
interface DefaultOptions {
algorithm: 'default';
rowsToSearch?: number;
}
interface ExplicitHeadersOptions {
algorithm: 'explicitHeaders';
headers: string[];
skip?: number;
}
interface SpecificRowsOptions {
algorithm: 'specificRows';
rowNumbers: number[];
skip?: number;
}
interface DataRowAndSubHeaderDetectionOptions {
algorithm: 'dataRowAndSubHeaderDetection';
rowsToSearch?: number;
}
interface NewfangledOptions {
algorithm: 'newfangled';
}
type GetHeadersOptions = DefaultOptions | ExplicitHeadersOptions | SpecificRowsOptions | DataRowAndSubHeaderDetectionOptions | NewfangledOptions;
type ParseBufferOptions = Omit<DelimiterOptions, 'chunkSize' | 'parallel'> & {
readonly headerSelectionEnabled?: boolean;
};
declare function parseBuffer(buffer: Buffer, options: ParseBufferOptions): Promise<WorkbookCapture>;
declare enum NativeFileTypes {
CSV = "csv",
TSV = "tsv",
PSV = "psv"
}
type Delimiters = ',' | '|' | '\t' | ';' | ':' | '~' | '^' | '#';
interface DelimiterOptions {
readonly delimiter?: Delimiters;
readonly guessDelimiters?: Delimiters[];
readonly dynamicTyping?: boolean;
readonly skipEmptyLines?: boolean | 'greedy';
readonly transform?: (value: any) => Flatfile.CellValueUnion;
readonly chunkSize?: number;
readonly parallel?: number;
readonly headerDetectionOptions?: GetHeadersOptions;
readonly debug?: boolean;
}
declare const DelimiterExtractor: (fileExt: string, options: DelimiterOptions) => (listener: _flatfile_listener.FlatfileListener) => void;
declare const delimiterParser: typeof parseBuffer;
export { DelimiterExtractor, type DelimiterOptions, type Delimiters, NativeFileTypes, delimiterParser };