Zum Inhalt springen

Einbetten — Überblick

Anders als beim Generieren — wo erzeugter Code in dein Projekt wandert — geht es hier darum, die FinDSL-Toolchain selbst (Parser, Type-Checker, Prüfen, Generieren, Editor) in eine eigene Anwendung einzubetten. Etwa ein Behördenportal mit eingebautem FinDSL-Editor.

@findsl/core → @findsl/web → @findsl/editor → @findsl/editor-react
(Node-Kern) (LSP-Worker) (Monaco-Editor) (React-Wrapper)
PaketUmgebungWofür
@findsl/coreNodeProgrammatisch parsen, prüfen, auswerten, generieren — eigenes Tooling, Server, Build-Skripte.
@findsl/webBrowserDie Toolchain als LSP-Worker + check/generate-API, ohne Editor-UI — für eine eigene Oberfläche.
@findsl/editorBrowserFertiger, einbettbarer Monaco-Editor (mountFindslEditor()) mit Highlighting, Diagnosen, Play-Pfeilen.
@findsl/editor-reactBrowser (React)React-Komponente <FindslEditor> um @findsl/editor — Mount/Dispose im Komponenten-Lebenszyklus, Ref-API.

Jede Schicht baut auf der vorigen auf — @findsl/web bündelt @findsl/core, @findsl/editor nutzt den @findsl/web-Worker, und @findsl/editor-react ist die React-Bindung um @findsl/editor.

  • Eine Web-Bearbeitungsoberfläche (Editor + Prüfen + Generieren) → @findsl/editor. Der bei weitem häufigste Fall.
  • … in einer React-Anwendung@findsl/editor-react (<FindslEditor>-Komponente um @findsl/editor).
  • Eine eigene Browser-UI ohne Monaco (z. B. nur Validierung im Hintergrund) → @findsl/web direkt (LSP-Worker + Typen). Selten.
  • Server-/CLI-/Build-Tooling in Node → @findsl/core.