用途:在保存 Salla App Function 前进行校验。资料指出 salla_functions action=save 返回 200 只代表包装器首尾行匹配,并不做类型检查或运行函数体,因此 200 不等于函数正确;每次保存都应触发“校验→修复→重新保存→重新校验”的闭环,直到干净。
主要能力与步骤:
- 严格匹配模板包装器:从 salla_functions action=get 复制模板,保持首行(函数签名)与末行(函数定义结尾)不变,只改函数体;context 参数名、类型、返回类型和结尾行都要原样保留,所有 const/let/function/import/class 都必须放在包装器内部。content 是完整函数字符串而非仅函数体。
- 用触发器的类型做类型检查:types 是 action=get 返回的 .d.ts URL 列表,逐个下载到 handler 旁,例如 curl -sSL "https://…/shipments.d.ts" -o salla-globals.d.ts。把完整包装器放入 handler.ts,按编辑器标准(非严格、忽略 TS6133)检查:npx -y -p typescript tsc --noEmit --skipLibCheck salla-globals.d.ts handler.ts。可选更严格:npx -y -p typescript tsc --noEmit --strict --skipLibCheck salla-globals.d.ts handler.ts。若类型 URL 不可达,重试或从 action=get 重新获取;手写 mock 仅作最后手段,且需按触发器实际类型调整。
- 校验出站 Admin API 调用:对照端点 OpenAPI 校验请求体/参数与解析后的响应,按 salla-api-core 的循环执行。
- 在演示店运行:保存后用 salla_functions action=preview 端到端运行,失败则修复函数体、重新保存并重跑步骤 1–4。
限制与注意:凭据应放在 App Settings(通过 context.settings 读取),不要写入保存的源码;令牌/OAuth 见 salla-app-auth,webhook 签名与幂等见 salla-webhooks。步骤 1–2 是仅有的保存前安全网。资料未提供具体收费、价格或平台支持信息。