Files
image-studio/app/app.ts
2026-07-03 10:01:02 +02:00

27 lines
976 B
TypeScript

import { documentCommands } from "@commands/document";
import { createCommandRegistry } from "@commands/registry";
import { selectionCommands } from "@commands/selection";
import { viewportCommands } from "@commands/viewport";
import { createInitialAppState } from "@editor/initial-state";
import { createAppStore } from "@editor/store";
export type ImageStudioApp = ReturnType<typeof createImageStudioApp>;
export function createImageStudioApp(options?: { documentName?: string; createDefaultArtboard?: boolean }) {
const registry = createCommandRegistry([...viewportCommands, ...selectionCommands, ...documentCommands]);
const store = createAppStore(createInitialAppState(options?.documentName), registry);
if (options?.createDefaultArtboard !== false) {
store.dispatch("document.addArtboard", {
id: crypto.randomUUID(),
name: "Artboard 1",
bounds: { x: -400, y: -300, w: 800, h: 600 },
});
}
return {
registry,
store,
};
}