UNPKG

@starship-ci/generator

Version:

Kubernetes manifest generator for Starship deployments

27 lines (26 loc) 792 B
import { CosmosBuilder } from './cosmos'; import { EthereumBuilder } from './ethereum'; const chainBuilderRegistry = { ethereum: EthereumBuilder }; function createBuilder(chainName, config) { const builder = chainBuilderRegistry[chainName] || CosmosBuilder; return new builder(config); } /** * Main ChainBuilder that uses the factory pattern to create appropriate builders */ export class ChainBuilder { config; generators = []; constructor(config) { this.config = config; // Create builders for each chain this.config.chains?.forEach((chain) => { this.generators.push(createBuilder(chain.name, this.config)); }); } generate() { return this.generators.flatMap((generator) => generator.generate()); } }