@starship-ci/generator
Version:
Kubernetes manifest generator for Starship deployments
27 lines (26 loc) • 792 B
JavaScript
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());
}
}