Skip to content
This repository was archived by the owner on Aug 17, 2025. It is now read-only.

Commit 17cf9bf

Browse files
committed
- Improved boardify SDK (API)
- Removed old plugin system that was using interfaces and used classes instead - Removed tests for import and render registries (Need to be added later) Improvements still must be made in terms of error catching as wrongly loaded plugin can make the entire application go dark.
1 parent 0d030bc commit 17cf9bf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+408
-538
lines changed

packages/app/src/AppLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import CSSSnippets from "./features/snippets/Snippets";
99
import { Titlebar, ToolbarProvider } from "./features/titlebar";
1010
import { ModalContainer } from "./ui/modal";
1111
import { ThemeProvider } from "./features/theme";
12-
import { PluginProvider } from "./core/plugins";
12+
import { PluginProvider } from "./services/plugins";
1313
import { useAppDispatch, useAppSelector } from "./redux";
1414

1515
interface AppLayoutProps {

packages/app/src/core/plugins/SdkInitializer.tsx

Lines changed: 0 additions & 42 deletions
This file was deleted.

packages/app/src/core/renderers/renderRegistry.test.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

packages/app/src/core/renderers/rendererRegistry.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.

packages/app/src/features/board/components/nodes/NodesRenderer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useAppSelector } from "@/redux";
2-
import { rendererRegistry } from "@/core/renderers";
2+
import { rendererRegistry } from "@/services/renderer";
33
import { ErrorBoundary } from "react-error-boundary";
44
import { FallbackNode } from "./FallbackNode";
55
import { NodeData, selectVisibleNodes } from "../..";
@@ -10,7 +10,7 @@ export function NodesRenderer() {
1010
return (
1111
<>
1212
{nodes.map((node: NodeData<unknown>) => {
13-
const Renderer = rendererRegistry.getRenderer(node.type);
13+
const Renderer = rendererRegistry.get(node.type);
1414
return (
1515
<ErrorBoundary
1616
key={node.id}

packages/app/src/redux/store.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { configureStore } from "@reduxjs/toolkit";
22
import { settingsReducer } from "@/features/settings/store";
33
import appReducer from "@/redux/slices/appSlice";
44
import { combineReducers } from "@reduxjs/toolkit";
5-
import pluginsSlice from "@/core/plugins/store";
5+
import pluginsSlice from "@/services/plugins/store";
66
import notificationsReducer from "./slices/notificationsSlice";
77
import snippetSlice from "@/features/snippets/store/snippetSlice";
88
import keybindsSlice from "@/features/keybinds/redux/keybindsSlice";

packages/app/src/core/importers/ImporterRegistry.ts renamed to packages/app/src/services/importer/ImporterRegistry.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,30 @@
1-
import {
2-
ImporterEntry,
3-
ImporterHandler,
4-
ImporterRegistryInterface,
5-
ImportEvent,
6-
NoSuitableImporterError,
7-
} from "@boardify/sdk";
1+
import { ImporterEntry, ImporterHandler, ImportEvent } from "@boardify/sdk";
2+
import { NoSuitableImporterError } from "./types";
83

94
/**
105
* A registry to manage and prioritize data importers.
116
*/
12-
class ImporterRegistry implements ImporterRegistryInterface {
7+
class ImporterRegistry {
138
private importers: ImporterEntry[] = [];
149

15-
registerImporter(handler: ImporterHandler, priority = 0): void {
10+
register(handler: ImporterHandler, priority = 0): void {
1611
if (!this.importers.some((entry) => entry.handler === handler)) {
1712
this.importers.push({ handler, priority });
1813
this.importers.sort((a, b) => b.priority - a.priority);
1914
}
2015
}
2116

22-
unregisterImporter(handler: ImporterHandler): void {
17+
unregister(handler: ImporterHandler): void {
2318
this.importers = this.importers.filter(
2419
(entry) => entry.handler !== handler
2520
);
2621
}
2722

28-
clearImporters(): void {
23+
clear(): void {
2924
this.importers = [];
3025
}
3126

32-
getImporters(): ImporterEntry[] {
27+
get(): ImporterEntry[] {
3328
return this.importers;
3429
}
3530

packages/app/src/core/importers/importAction.ts renamed to packages/app/src/services/importer/importAction.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { AppThunk } from "@/redux";
2-
import { importerRegistry } from "./ImporterRegistry";
32
import { error } from "@tauri-apps/plugin-log";
43
import { showErrorToast } from "@/features/notifications";
5-
import { ImportEvent, NoSuitableImporterError } from "@boardify/sdk";
4+
import { ImportEvent } from "@boardify/sdk";
5+
import { importerRegistry } from "./ImporterRegistry";
6+
import { NoSuitableImporterError } from "./types";
67

78
export const importFile =
89
(path: string, position: { x: number; y: number }, file: File): AppThunk =>
File renamed without changes.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export class NoSuitableImporterError extends Error {
2+
constructor(fileType: string, fileName: string) {
3+
super(`No importer found for file type: ${fileType} (${fileName})`);
4+
this.name = "NoSuitableImporterError";
5+
}
6+
}

0 commit comments

Comments
 (0)