Перейти к содержимому
GitHubXDiscord

@triggery/devtools-bridge

Page-side мост, делающий рантайм Triggery наблюдаемым для внешних инструментов — Chrome-расширения, будущей standalone веб-панели, кастомных инспекторов, всего, что умеет слушать window.postMessage. Framework-agnostic, без рантайм-зависимостей, возвращает no-op в Node / SSR.

npm bundle

pnpm add @triggery/core @triggery/devtools-bridge

Peer-зависимости: @triggery/core.

ЭкспортНазначение
installDevtoolsBridge(runtime)Подключает page-side мост к рантайму. Возвращает обратный вызов dispose().
import { createRuntime } from '@triggery/core';
import { installDevtoolsBridge } from '@triggery/devtools-bridge';

const runtime = createRuntime();

if (import.meta.env.DEV) {
  installDevtoolsBridge(runtime);
}

И всё. Мост:

  1. Выставляет discovery-handle на window.__triggery_devtools__, чтобы инструменты могли обнаружить рантайм.
  2. Транслирует postMessage triggery:hello с текущим graph() и буфером инспектора.
  3. Подписывается на рантайм и шлёт triggery:snapshot на каждый новый запуск.
  4. По dispose() удаляет discovery-handle и транслирует triggery:bye.

В Node / SSR installDevtoolsBridge возвращает no-op-disposer.

{ source: 'triggery-devtools', type: 'triggery:hello',    runtimeId, graph, buffer, at }
{ source: 'triggery-devtools', type: 'triggery:snapshot', runtimeId, snapshot,     at }
{ source: 'triggery-devtools', type: 'triggery:bye',      runtimeId,               at }