useInspect
Стабильный · с 0.1.0
Возвращает самый свежий TriggerInspectSnapshot для одного триггера или undefined, если триггер ещё ни разу не запускался. Полезно для инлайн-оверлеев отладки, штампов “last run at” или быстрых проверок “выстрелил ли он вообще” в dev-панелях.
useInspect не подписывается на новые запуски — он читает свежий снепшот на каждом рендере и возвращает его как есть. Парься с useInspectHistory для живого фида свежих запусков.
import { useInspect } from '@triggery/react';
Сигнатура
Заголовок раздела «Сигнатура»function useInspect<S extends TriggerSchema>(
trigger: Trigger<S>,
): TriggerInspectSnapshot | undefined;Параметры
Заголовок раздела «Параметры»| Параметр | Тип | Описание |
|---|---|---|
trigger | Trigger<S> | Триггер, возвращённый из createTrigger. |
Возвращает
Заголовок раздела «Возвращает»Свежий TriggerInspectSnapshot или undefined, если триггер ещё не запускался (либо в рантайме отключён инспектор).
| Поле снепшота | Тип | Описание |
|---|---|---|
triggerId | string | Совпадает с trigger.id. |
runId | string | Уникальный id на запуск. |
eventName | string | Событие, которое сматчилось. |
status | 'fired' | 'skipped' | 'errored' | 'aborted' | Исход запуска. |
reason? | string | Установлено, когда status — 'skipped', 'errored' или 'aborted'. |
durationMs | number | Wall-time обработчика. |
executedActions | readonly string[] | Имена действий, вызванных в ходе запуска. |
snapshotKeys | readonly string[] | Ключи условий, прочитанные обработчиком. |
Примеры
Заголовок раздела «Примеры»Инлайн debug-оверлей
Заголовок раздела «Инлайн debug-оверлей»import { useInspect } from '@triggery/react';
import { messageTrigger } from './triggers/message.trigger';
function DebugBadge() {
const snap = useInspect(messageTrigger);
if (!snap) return null;
return (
<span style={{ color: snap.status === 'fired' ? 'green' : 'orange' }}>
{snap.status} ({snap.durationMs.toFixed(1)}ms)
</span>
);
}Быстрая проверка “выстрелил ли он” в dev-инструментах
Заголовок раздела «Быстрая проверка “выстрелил ли он” в dev-инструментах»import { useInspect } from '@triggery/react';
import { fetchUserTrigger } from './triggers/fetch-user.trigger';
function FetchUserDebug() {
const snap = useInspect(fetchUserTrigger);
return (
<pre>
{snap
? JSON.stringify(
{ id: snap.runId, status: snap.status, actions: snap.executedActions },
null,
2,
)
: '(no runs yet)'}
</pre>
);
}Штамп последнего успешного запуска
Заголовок раздела «Штамп последнего успешного запуска»import { useInspect } from '@triggery/react';
import { syncTrigger } from './triggers/sync.trigger';
function LastSync() {
const snap = useInspect(syncTrigger);
if (!snap || snap.status !== 'fired') return <span>never</span>;
return <span>last sync: {snap.runId}</span>;
}Замечания
Заголовок раздела «Замечания»См. также
Заголовок раздела «См. также» useInspectHistory Живой список свежих запусков по всем триггерам.
createInspector Кольцевой буфер за каждым снепшотом.
RuntimeOptions Флаги `inspector` и `inspectorBufferSize`.
Руководство по devtools Когда строить инлайн-панели, а когда использовать @triggery/devtools-panel.