UNPKG

@ovotech/blaise

Version:

An API to generate mock payloads for @ovotech/castle using @ovotech/avro-mock-generator

30 lines (29 loc) 1.28 kB
import { AvroKafkaMessage } from '@ovotech/avro-kafkajs'; import { Options as AvroOptions, AvroMock } from '@ovotech/avro-mock-generator'; import { CastleEachBatchPayload, CastleEachMessagePayload } from '@ovotech/castle'; import { schema } from 'avsc'; import { DeepOmit, DeepPartial } from 'ts-essentials'; export interface Blaise<T = unknown> { <T1 = T>(newDefaults?: DeepPartial<BlaiseDefaults<T>>): Blaise<T1>; default<T1 = T>(newDefaults: DeepPartial<BlaiseDefaults<T>>): Blaise<T1>; pickUnion<T1 = T>(unions: Array<string>): Blaise<T1>; seed<T1 = T>(seed: number): Blaise<T1>; getDefault(): BlaiseDefaults<T>; eachMessage(message?: DeepPartial<AvroKafkaMessage<T>>): CastleEachMessagePayload<T>; eachBatch(messages: Array<AvroKafkaMessage<T>>): CastleEachBatchPayload<T>; message(message?: DeepPartial<AvroKafkaMessage<T>>): AvroKafkaMessage<T>; } export declare type BlaiseDefaults<T = unknown> = { eachMessage: Omit<CastleEachMessagePayload<T>, 'message'>; eachBatch: DeepOmit<CastleEachBatchPayload<T>, { batch: { messages: never; }; }>; message: AvroKafkaMessage<T>; avro: AvroOptions & { schema: schema.AvroSchema; seed?: number; }; generator: AvroMock<T>; };