Calendar/src/v2/core/RenderBuilder.ts

21 lines
452 B
TypeScript
Raw Normal View History

2025-12-09 21:02:44 +01:00
import { Renderer, RenderContext } from './IGroupingRenderer';
2025-12-09 21:02:44 +01:00
export interface Pipeline {
run(context: RenderContext): void;
}
2025-12-09 21:02:44 +01:00
export function buildPipeline(renderers: Renderer[]): Pipeline {
// Link renderers
for (let i = 0; i < renderers.length - 1; i++) {
renderers[i].next = renderers[i + 1];
}
2025-12-09 21:02:44 +01:00
const first = renderers[0] ?? null;
2025-12-09 21:02:44 +01:00
return {
run(context: RenderContext) {
if (first) first.render(context);
}
2025-12-09 21:02:44 +01:00
};
}