UNPKG

@ovotech/blaise

Version:

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

74 lines (73 loc) 2.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultPayload = void 0; const avro_mock_generator_1 = require("@ovotech/avro-mock-generator"); const merge = require("lodash.merge"); // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/explicit-function-return-type const noop = () => { }; /* eslint-disable @typescript-eslint/no-explicit-any */ exports.defaultPayload = { eachMessage: { topic: 'blaise-default-topic', partition: 0, producer: noop, }, eachBatch: { batch: { topic: '', highWatermark: '', partition: 0, isEmpty: noop, firstOffset: noop, lastOffset: noop, offsetLag: noop, offsetLagLow: noop, }, isStale: noop, isRunning: noop, heartbeat: noop, uncommittedOffsets: noop, producer: noop, resolveOffset: noop, commitOffsetsIfNecessary: noop, }, message: { schema: [], key: Buffer.from('blaise-default-key'), value: {}, timestamp: Date.now().toString(), size: 3, attributes: 3, offset: '1', }, avro: { schema: 'boolean', }, generator: avro_mock_generator_1.default, }; /* eslint-enable @typescript-eslint/no-explicit-any */ const buildBlaise = (defaults = exports.defaultPayload) => { const blaise = (newDefaults) => { var _a; if ((_a = newDefaults === null || newDefaults === void 0 ? void 0 : newDefaults.avro) === null || _a === void 0 ? void 0 : _a.seed) { newDefaults.generator = avro_mock_generator_1.Seeded(newDefaults.avro.seed); } return buildBlaise(merge({}, defaults, newDefaults)); }; blaise.default = blaise; blaise.pickUnion = (pickUnion) => blaise({ avro: { pickUnion } }); blaise.seed = (seed) => blaise({ avro: { seed } }); blaise.getDefault = () => defaults; blaise.message = (message) => merge({ value: defaults.generator(defaults.avro.schema, defaults.avro), }, defaults.message, message); blaise.eachMessage = (message) => ({ ...defaults.eachMessage, message: blaise.message(message), }); blaise.eachBatch = (messages = []) => merge({}, defaults.eachBatch, { batch: { messages }, }); return blaise; }; exports.default = buildBlaise();