UNPKG

@flatfile/plugin-delimiter-extractor

Version:

A plugin for parsing .delimiter files in Flatfile.

54 lines (49 loc) 1.89 kB
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 };