installDashletGlobal()

Der Einstieg der Bibliothek. Rufen Sie ihn zuerst auf, auf Top-Level im Dashlet-Skript, vor allem, was verzögert werden könnte.

1. Signatur

import { installDashletGlobal } from 'ecmind-blue-dashlet';

const dashlet = installDashletGlobal(options); // options ist optional
// dashlet: Dashlet — der Instanz-Handle (Seite: Dashlet)

installDashletGlobal(options) zuerst aufrufen, auf Top-Level im Dashlet-Skript, vor allem, was verzögert werden könnte. Der Rich Client feuert seinen ersten window.osDashletInit-Aufruf ohne zu warten auf load; das Importieren des Pakets registriert den globalen bereits und puffert jeden Host-Aufruf, der vor der Ausführung dieses Aufrufs eintrifft — so wird nichts verpasst. Der Wire und die Erkennung starten aber erst, wenn dieser Aufruf ausgeführt wird.

2. Was er tut

Synchron, vor der Rückkehr:

  • installiert window.osDashletInit — einen stabilen Dispatcher pro Fenster; die Installation ist atomar und idempotent, und Host-Aufrufe, die vor der Konfiguration des Dashlets eintreffen, werden gepuffert (begrenzt, in Ankunftsreihenfolge) und bei der Aktivierung entleert — niemals verworfen;

  • hängt den einzigen puffernden message-Listener an (idempotent pro Fenster);

  • startet den Webclient-Wire, wenn die Origin-Entscheidung es zulässt: ein nutzbarer konfigurierter expectedOrigin gibt den strengen Modus, ein weggelassener Origin in einem iframe den lernenden Modus, und ein Top-Level-Fenster ohne konfigurierten Origin erhält keinen Wire (siehe Origin-Konfiguration);

  • macht das Dashlet aktiv und entleert die gepufferten Host-Aufrufe und -Nachrichten.

Asynchron:

  • die Rich-Client-Erkennung läuft — eine sofortige throw-safe-Probe plus Polling (Umgebungen und Erkennung); die Zustandsmaschine löst sich in genau einen der drei Zustände auf;

  • die Erkennungs-Wartezeit ist durch detectionTimeoutMs plus 250 ms Sicherheitsnetz begrenzt; ein Timeout löst das Dashlet als Standalone auf.

3. Parameter

Name Typ Beschreibung

options (optional)

DashletOptions

Das Konfigurationsobjekt — siehe DashletOptions für die Feld-für-Feld-Referenz. Alle Felder sind optional; options.window nimmt standardmäßig das aktuelle globale window (in Unit-Tests injizierbar).

Verhalten:

  • Idempotente Registrierung: ein erneuter Aufruf installiert denselben stabilen Dispatcher. Ein späterer Aufruf im selben Fenster übernimmt den geteilten Sink (die letzte Konfiguration gewinnt) — der Wire der vorherigen Instanz empfängt schlicht keine Host-Events mehr.

  • Ohne ein nutzbares Window-Objekt oder bei expectedOrigin === "*" wirft der Aufruf eine TypeError zur Installzeit (siehe Fehler).

4. Beispiele

import { installDashletGlobal } from 'ecmind-blue-dashlet';

// ERSTES. Top-Level.
const dashlet = installDashletGlobal({ expectedOrigin: 'https://enaio.example.com' });

await dashlet.init; // der normalisierte Init-Kontext

Siehe Schnellstart für das vollständige minimale Dashlet.

5. Fehler

  • TypeError('installDashletGlobal: no usable window object available') — kein options.window und kein nutzbares Global (zum Beispiel Node ohne Window).

  • TypeError('installDashletGlobal: expectedOrigin must never be "*"') — der Wildcard-Origin wird zur Installzeit abgelehnt, nicht zur Post-Zeit.