@wavesenterprise/generator-cli
Version:
Waves Enterprise transactions generator CLI
43 lines (36 loc) • 1.17 kB
text/typescript
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)
}
}
}