TriggerSchema
Стабильный · с 0.1.0
TriggerSchema — единственный обобщённый параметр, который передают в createTrigger. Он описывает полную типизированную поверхность триггера: каждое событие, на которое тот реагирует, каждое условие, которое он умеет читать, и каждое действие, которое он может вызвать. Все три ключа необязательные; пустая схема ({}) корректна для триггеров без входов и выходов.
Определение
Заголовок раздела «Определение»| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
events | Record<string, unknown> | нет | Мапа eventName → payloadType. Для событий без полезной нагрузки используй void. |
conditions | Record<string, unknown> | нет | Мапа conditionName → valueType. Значения тянутся в pull-режиме (рантайм вызывает геттер в момент срабатывания). |
actions | Record<string, unknown> | нет | Мапа actionName → payloadType. Для действий без параметров используй void. |
Соглашения по именованию
Заголовок раздела «Соглашения по именованию»Библиотека не навязывает конвенцию кейзинга — любая строка допустима как ключ. Распространённая практика в экосистеме Triggery:
- События: глаголы в kebab-case с доменным префиксом —
'new-message','cta:click','session-expired'. - Условия: существительные в camelCase —
user,activeChannelId,featureFlags. - Действия: глаголы в camelCase —
showToast,playSound,setUser.
Это хорошо сочетается с хелпером createNamedHooks, который конвертирует kebab/camel-ключи в PascalCase-имена хуков ('new-message' → useNewMessageEvent).
Примеры
Заголовок раздела «Примеры»Пустая схема
Заголовок раздела «Пустая схема»Схема только с событиями
Заголовок раздела «Схема только с событиями»Полная схема со всеми тремя мапами
Заголовок раздела «Полная схема со всеми тремя мапами»Дискриминированный union событий
Заголовок раздела «Дискриминированный union событий»Поле event в контексте обработчика — дискриминированный union по S['events']:
Замечания
Заголовок раздела «Замечания»См. также
Заголовок раздела «См. также» createTrigger Конструктор, который принимает эту схему.
TriggerCtx Контекст обработчика — выводится из схемы.
Анатомия триггера Разбор поле за полем.
createNamedHooks Сгенерировать PascalCase-хуки из схемы.