UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

25 lines (24 loc) 1.53 kB
import { AppType } from "../../../types"; /** * 确定要写进本地 plugin.config.json 的 `app_type`——**以后端为准,不以请求为准**。 * * `lpm create --app-type X` 里的 X 只是"请求后端建成什么形态";后端可能忽略 / 改写它, * 且 resume 路径根本不调 create 接口。所以本地的事实来源必须是 `GetAppDescriptionInfo` * 返回的真实 `app_type` / `point_types`(与 config-only init 同一套判定,见 * dispatcher.ts 的 config-only 分支)。 * * - 后端可达:返回 `deriveAppTypeFromBackend(descInfo)`;若与 `requested` 不一致,warn 出来 * (这正是"请求 ai_node 却建成 normal"这类需要暴露的异常信号)。 * - 后端不可达:由 `onUnreachable` 决定—— * - `'fallback'`(默认,`lpm create` 用):退回 `requested`(聊胜于无的兜底,至少不让 config * 缺字段被当 normal)并 warn`requested` 未传(如 `lpm init` 存量插件)则返回 undefined, * 由调用方 no-op、保持原样。 * - `'throw'``lpm init --config-only` 用):直接抛出。config-only 是在"领养"一个已存在的 * 后端插件、没有 `requested` 可兜底,拿不到真实 app_type 就不能继续,必须 fail-fast。 */ export declare function resolveBackendAppType({ siteDomain, appKey, requested, onUnreachable, }: { siteDomain: string; appKey: string; requested?: AppType; onUnreachable?: 'fallback' | 'throw'; }): Promise<AppType | undefined>;