/// import { ParseConfig } from 'papaparse'; export interface FieldSchema { /** Name of the row header (title) */ name: string; /** Key name which will be return with value in a column */ inputName: string; /** Makes column optional. If true column value will be return */ optional?: boolean; /** If required is true then a column value will be checked if it is not empty */ required?: boolean; /** If it is true all header (title) column values will be checked for uniqueness */ unique?: boolean; /** * If column contains list of values separated by comma in return * object it will be as an array. */ isArray?: boolean; /** * If a header name is omitted or is not the same as in config name * headerError function will be called with arguments headerName. */ headerError?: (headerValue: string, headerName: string, rowNumber: number, columnNumber: number) => string; /** * If value is empty requiredError function will be called with * arguments headerName, rowNumber, columnNumber. */ requiredError?: (headerName: string, rowNumber: number, columnNumber: number) => string; /** * If one of the header value is not unique uniqueError function * will be called with argument headerName. */ uniqueError?: (headerName: string, rowNumber: number) => string; /** * Validate column value. * Must return true for valid field and false for invalid. */ validate?: (field: string|number|boolean) => boolean; /** * If validate returns false validateError function * will be called with arguments headerName, rowNumber, columnNumber. */ validateError?: (headerName: string, rowNumber: number, columnNumber: number) => string; /** * Validate column value that depends on other values in other columns. * Must return true for valid field and false for invalid. */ dependentValidate?: (field: string, row: [string]) => boolean; /** * If dependentValidate returns false dependentValidateError function * will be called with arguments headerName, rowNumber, columnNumber. */ dependentValidateError?: (headerName: string, rowNumber: number, columnNumber: number) => string; } export interface RowError { rowIndex?: number; columnIndex?: number; message: string; } export interface ParsedResults { /** Array of parsed CSV entries */ data: Row[]; /** List of validation errors data */ inValidData: Error[]; } /** CSV File Validator configuration */ export interface ValidatorConfig { headers: FieldSchema[]; isHeaderNameOptional?: boolean; parserConfig?: ParseConfig; isColumnIndexAlphabetic?: boolean; } export default function CSVFileValidator( csv: string | File | NodeJS.ReadableStream, config: ValidatorConfig ): Promise>;