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.
Vier Pakete, eine Schichtung
Abschnitt betitelt „Vier Pakete, eine Schichtung“@findsl/core → @findsl/web → @findsl/editor → @findsl/editor-react (Node-Kern) (LSP-Worker) (Monaco-Editor) (React-Wrapper)| Paket | Umgebung | Wofür |
|---|---|---|
@findsl/core | Node | Programmatisch parsen, prüfen, auswerten, generieren — eigenes Tooling, Server, Build-Skripte. |
@findsl/web | Browser | Die Toolchain als LSP-Worker + check/generate-API, ohne Editor-UI — für eine eigene Oberfläche. |
@findsl/editor | Browser | Fertiger, einbettbarer Monaco-Editor (mountFindslEditor()) mit Highlighting, Diagnosen, Play-Pfeilen. |
@findsl/editor-react | Browser (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.
Welches Paket?
Abschnitt betitelt „Welches Paket?“ Editor einbetten Der schnellste Weg zu einem FinDSL-Editor im Browser: mountFindslEditor().
Programmatisch (Node) FinDSL im eigenen Code parsen, prüfen und generieren — @findsl/core.
- 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/webdirekt (LSP-Worker + Typen). Selten. - Server-/CLI-/Build-Tooling in Node →
@findsl/core.