blob: 1e920eaf2bdf2e65ea36818d64cfb9c0251b5c79 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import { ZBookmark } from "@karakeep/shared/types/bookmarks";
import { ContentRenderer, ContentRendererRegistry } from "./types";
class ContentRendererRegistryImpl implements ContentRendererRegistry {
private renderers: Map<string, ContentRenderer> = new Map<
string,
ContentRenderer
>();
register(renderer: ContentRenderer): void {
this.renderers.set(renderer.id, renderer);
}
getRenderers(bookmark: ZBookmark): ContentRenderer[] {
return [...this.renderers.values()]
.filter((renderer) => renderer.canRender(bookmark))
.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
}
getAllRenderers(): ContentRenderer[] {
return [...this.renderers.values()];
}
}
export const contentRendererRegistry = new ContentRendererRegistryImpl();
|