generators/increment-generator.ts (32 lines of code) (raw):

/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import { IBatchGenerator, ILogData } from "../core/ext-types.js" /* * Increment Generator * This generator creates logs with a standard message * And a number appended to the end of the log */ interface IGeneratorConfig { batchSize: number, logKey: string, } const defaultConfig: IGeneratorConfig = { batchSize: 10, logKey: "log", }; const incrementGenerator: IBatchGenerator = { name: "increment", defaultConfig: defaultConfig, createConfiguredGenerator: function (config: IGeneratorConfig) { return { generatorTemplate: this, makeInstance: (() => (async function*() { let logIndex = 0; while (1) { const batch: ILogData[] = []; for (let i = 0; i < config.batchSize; ++i) { batch.push({ [config.logKey]: `log-number-${logIndex}` }); ++logIndex; } yield batch; } })()), } } }; export default incrementGenerator;