summaryrefslogtreecommitdiff
path: root/apps/web/src/services/renderer/nodes/base-node.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/services/renderer/nodes/base-node.ts')
-rw-r--r--apps/web/src/services/renderer/nodes/base-node.ts27
1 files changed, 9 insertions, 18 deletions
diff --git a/apps/web/src/services/renderer/nodes/base-node.ts b/apps/web/src/services/renderer/nodes/base-node.ts
index 55bd055a..1d6fc0e4 100644
--- a/apps/web/src/services/renderer/nodes/base-node.ts
+++ b/apps/web/src/services/renderer/nodes/base-node.ts
@@ -1,35 +1,26 @@
-import type { CanvasRenderer } from "../canvas-renderer";
-
export type BaseNodeParams = object | undefined;
+export type AnyBaseNode = BaseNode<BaseNodeParams, unknown>;
-export class BaseNode<Params extends BaseNodeParams = BaseNodeParams> {
+export class BaseNode<
+ Params extends BaseNodeParams = BaseNodeParams,
+ Resolved = unknown,
+> {
params: Params;
+ resolved: Resolved | null = null;
constructor(params?: Params) {
this.params = params ?? ({} as Params);
}
- children: BaseNode[] = [];
+ children: AnyBaseNode[] = [];
- add(child: BaseNode) {
+ add(child: AnyBaseNode) {
this.children.push(child);
return this;
}
- remove(child: BaseNode) {
+ remove(child: AnyBaseNode) {
this.children = this.children.filter((c) => c !== child);
return this;
}
-
- async render({
- renderer,
- time,
- }: {
- renderer: CanvasRenderer;
- time: number;
- }): Promise<void> {
- for (const child of this.children) {
- await child.render({ renderer, time });
- }
- }
}