asciitorium
Version:
an ASCII ui framework for web + cli
20 lines (19 loc) • 553 B
JavaScript
/**
* Registry of available layout strategies
*/
export class LayoutRegistry {
static register(type, strategyClass) {
this.strategies.set(type, strategyClass);
}
static create(type, options) {
const StrategyClass = this.strategies.get(type);
if (!StrategyClass) {
throw new Error(`Unknown layout type: ${type}`);
}
return new StrategyClass(options);
}
static getAvailableTypes() {
return Array.from(this.strategies.keys());
}
}
LayoutRegistry.strategies = new Map();