@henteko/kumiki
Version:
A video generation tool that creates videos from JSON configurations
39 lines • 1.17 kB
JavaScript
import { RenderError } from '../utils/errors.js';
import { logger } from '../utils/logger.js';
export class SceneFactory {
static renderers = new Map();
/**
* Register a scene renderer
*/
static register(type, renderer) {
logger.debug('Registering scene renderer', { type });
this.renderers.set(type, renderer);
}
/**
* Create a scene renderer instance
*/
static create(scene, options) {
const RendererClass = this.renderers.get(scene.type);
if (!RendererClass) {
throw new RenderError(`Unknown scene type: ${scene.type}`, 'UNKNOWN_SCENE_TYPE', { type: scene.type });
}
logger.debug('Creating scene renderer', {
type: scene.type,
sceneId: scene.id
});
return new RendererClass(scene, options);
}
/**
* Get all registered scene types
*/
static getRegisteredTypes() {
return Array.from(this.renderers.keys());
}
/**
* Check if a scene type is registered
*/
static isTypeRegistered(type) {
return this.renderers.has(type);
}
}
//# sourceMappingURL=factory.js.map