UNPKG

@wavesenterprise/generator-cli

Version:

Waves Enterprise transactions generator CLI

43 lines (36 loc) 1.17 kB
import { IConfig } from "./interfaces"; interface IProgramOptions { broadcast: boolean; concurrency: string; } export const parseConfig = (raw: string, options: IProgramOptions): IConfig => { const config = JSON.parse(raw) let { generator: { txsNumber } } = config if (!txsNumber || isNaN(txsNumber)) { throw new Error('txsNumber is not a number') } if (Number(txsNumber) < 1) { throw new Error('txsNumber must be greater than 0') } if (options.broadcast) { if (!config.broadcast) { throw new Error('No "broadcast" segment in config') } if(!config.broadcast.grpcAddresses || config.broadcast.grpcAddresses.length === 0) { throw new Error('No grpcAddresses specified in config broadcast segment') } if(!config.broadcast.senderSeedPhrase) { throw new Error('No senderSeedPhrase specified in config broadcast segment') } if (options.concurrency !== null && isNaN(Number(options.concurrency))) { throw new Error('Invalid "concurrency" option: not a number') } } return { ...config, generator: { ...config.generator, txsNumber: Number(txsNumber) } } }