@pujansrt/data-genie
Version:
High performant ETL engine written in TypeScript
28 lines (27 loc) • 1.03 kB
TypeScript
import { DataReader, DataRecord } from '../core/interfaces';
import { DataTransformer } from '../transformers/transformers';
export interface ValidationMessage {
record: DataRecord;
field?: string;
message: string;
}
export type RecordValidationRule = (record: DataRecord, messages: ValidationMessage[]) => boolean;
export declare class ValidatingReader extends DataTransformer {
private rules;
private messages;
private throwExceptionOnFailure;
private recordStackTraceInMessage;
constructor(reader: DataReader);
add(rule: RecordValidationRule): this;
setExceptionOnFailure(value: boolean): this;
setRecordStackTraceInMessage(value: boolean): this;
getMessages(): ValidationMessage[];
read(): AsyncIterableIterator<DataRecord>;
}
export declare class FieldValidator {
private fieldName;
private rules;
constructor(fieldName: string);
addRule(rule: (value: any) => boolean, errorMessage: string): this;
createRecordValidationRule(): RecordValidationRule;
}