trigger-autocomplete-catalog
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTrigger Autocomplete Catalog
触发器自动补全目录
Use this whenever a provider has webhook/event triggers.
The trigger catalog is owned by and generated from
adapter sources. It does not live in this (cloud) repo's -
that's a different package.
@relayfile/adapter-corepackages/core- To check coverage (is a provider already in the catalog?), import it from
the installed package - no checkout needed:
exposes
import("@relayfile/adapter-core/triggers")andKNOWN_TRIGGER_CATALOG.ADAPTERS_WITHOUT_KNOWN_TRIGGERS - To add events, edit the provider's adapter source. That's the same
package you already work in when wiring a provider (the relayfile-adapters checkout from the persona's adapter-package steps). Declaring events is one more edit in that package - no separate location to track.
@relayfile/adapter-<provider>
当提供商具备webhook/事件触发器时,请使用此功能。
触发器目录由维护,并从适配器源生成。它不存放在本(云)仓库的中——那是另一个不同的包。
@relayfile/adapter-corepackages/core- 检查覆盖范围(某个提供商是否已在目录中?):从已安装的包中导入即可,无需检出代码:会暴露
import("@relayfile/adapter-core/triggers")和KNOWN_TRIGGER_CATALOG。ADAPTERS_WITHOUT_KNOWN_TRIGGERS - 添加事件:编辑提供商的适配器源。也就是你在对接提供商时使用的同一个包(即从角色的适配器包步骤中检出的relayfile-adapters)。只需在该包中再做一处编辑即可声明事件——无需在其他位置跟踪。
@relayfile/adapter-<provider>
Goal
目标
Ensure persona trigger autocomplete and deploy-time lint include the provider via .
KNOWN_TRIGGER_CATALOG确保角色触发器自动补全和部署时的lint能通过识别该提供商。
KNOWN_TRIGGER_CATALOGScope
范围
Only providers that actually emit webhook/event triggers belong in the catalog.
Pure storage / polling providers with no event source (e.g. s3, gcs, postgres)
legitimately remain in - do not
fabricate events for them.
adapters-without-known-triggers.generated.json只有实际会发送webhook/事件触发器的提供商才需要加入目录。纯存储/轮询类、无事件源的提供商(如s3、gcs、postgres)合理归属于——请勿为它们虚构事件。
adapters-without-known-triggers.generated.jsonRequired outcomes
必要结果
- Provider appears in (regenerated
KNOWN_TRIGGER_CATALOG).catalog.generated.ts - Provider is absent from for missing trigger metadata.
adapters-without-known-triggers.generated.json - Event names are verbatim provider event names used at runtime (match the
adapter webhook-normalizer's and/or the events the cloud
eventTypesyncs subscribe to).nango-integrations/<provider>-relay
- 提供商出现在中(即重新生成的
KNOWN_TRIGGER_CATALOG)。catalog.generated.ts - 提供商不会因缺少触发器元数据而出现在中。
adapters-without-known-triggers.generated.json - 事件名称必须与运行时使用的提供商事件名称完全一致(匹配适配器webhook-normalizer的和/或云服务
eventType同步订阅的事件)。nango-integrations/<provider>-relay
Implementation options (in the adapter package)
实现方案(在适配器包中)
- Add to the adapter class, or
supportedEvents(): string[] - Add a with a top-level
<provider>.mapping.yamlblock whose keys are the event names (mirrorwebhooks:). The generator only reads the keys.packages/granola/granola.mapping.yaml
- 为适配器类添加方法,或者
supportedEvents(): string[] - 添加一个文件,其中包含顶级
<provider>.mapping.yaml块,其键为事件名称(参考webhooks:)。生成器只会读取这些键。packages/granola/granola.mapping.yaml
Validation (in your relayfile-adapters checkout)
验证(在你的relayfile-adapters检出目录中)
bash
undefinedbash
undefinedBuild ALL workspaces first. The generator imports each adapter's
先构建所有工作区。生成器会导入每个适配器的
supportedEvents(); if dependencies/dist are missing, those providers fail to
supportedEvents();如果依赖/构建产物缺失,这些提供商将无法被导入,
import and are silently dropped from the catalog into the gap list. A core-only
会被自动从目录中移除并加入缺失列表。仅构建core是不够的。
build is NOT enough.
—
npm ci
npm run build
node --import tsx packages/core/src/cli.ts triggers generate --repo-root .
node --import tsx packages/core/src/cli.ts triggers check --repo-root .
npm run build --workspace=packages/core
node --import tsx --test packages/core/tests/triggers/catalog-generator.test.ts
After the change merges, publish `@relayfile/adapter-core` (the `Publish Package`
workflow, e.g. `package=core`, `version=patch`). Publishing is what makes the
catalog change take effect - the trigger-autocomplete / deploy-time lint tooling
reads it via its `@relayfile/adapter-core` dependency. Cloud's
`packages/core` also depends on `@relayfile/adapter-core` and has tests that
import `KNOWN_TRIGGER_CATALOG`; normally no cloud `package.json` edit is
required because the dependency is a caret range that accepts new patch
releases. Bump Cloud's dependency only when the catalog fix requires a new
minor/major adapter-core version or Cloud needs to pin a specific published
version for CI.npm ci
npm run build
node --import tsx packages/core/src/cli.ts triggers generate --repo-root .
node --import tsx packages/core/src/cli.ts triggers check --repo-root .
npm run build --workspace=packages/core
node --import tsx --test packages/core/tests/triggers/catalog-generator.test.ts
变更合并后,发布`@relayfile/adapter-core`(使用`Publish Package`工作流,例如`package=core`,`version=patch`)。发布操作会让目录变更生效——触发器自动补全/部署时lint工具会通过其`@relayfile/adapter-core`依赖读取该目录。云服务的`packages/core`同样依赖`@relayfile/adapter-core`,并且有导入`KNOWN_TRIGGER_CATALOG`的测试;通常无需修改云服务的`package.json`,因为依赖使用的是接受新补丁版本的 caret 范围。只有当目录修复需要adapter-core的新次版本/主版本,或者云服务需要为CI固定某个特定发布版本时,才需要升级云服务的依赖。Notes
注意事项
- Reference when closing missing-provider autocomplete gaps.
relayfile-adapters#115 - If a provider intentionally has no event source, document why it remains in the list.
without-known-triggers
- 当填补缺失提供商的自动补全空白时,请引用。
relayfile-adapters#115 - 如果某个提供商故意没有事件源,请记录其留在列表中的原因。
without-known-triggers