All files / core/blong-realm browser.ts

0% Statements 0/37
0% Branches 0/1
0% Functions 0/1
0% Lines 0/37

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                                                           
/// <reference types="vite/client" />
/**
 * browser.ts — `blong` realm entry point (browser platform).
 *
 * Auto-discovers the model handler (`blongFlowModel`) from the `meta/`
 * folder plus the browser namespace orchestrator (`browser/orchestrator`).
 *
 * Consumed by suites that want the `blong` domain:
 *
 *   // browser.ts
 *   async function blong() {
 *       return import('@feasibleone/blong-blong/browser.ts');
 *   }
 */
import {realm} from '@feasibleone/blong';

export default realm(() => ({
    url: import.meta.url,
    children: globalThis.window
        ? import.meta.glob(['./component/**/*.ts', './browser/orchestrator/**/*.ts'])
        : // Without a DOM the pages cannot render, and their files must not be loaded
          // either: a page imports PrimeReact, and a runner that strips types instead of
          // bundling (the tap suite) fails on a directory import inside it rather than
          // simply not rendering the page. The orchestrator layer is safe — it is where
          // the portal and the namespace bindings live.
          ['./browser/orchestrator'],
    config: {
        default: {
            orchestrator: true,
            component: true,
            // The notation the pages draw diagrams with, named rather than
            // imported: a deployment that registers another renderer changes
            // this value, and the pages never learn which one they got.
            blong: {diagram: {renderer: 'mermaid'}},
        },
    },
}));