SuperAPI AI 工具集

write-script-bun

通用与其它

查看项目

更新于 10-16 05:05

技能介绍

用途:这是 Windmill 平台编写 TypeScript 脚本的规范文档。Bun 是默认且首选的 TypeScript 运行时,除特定场景需用 Deno 外,TypeScript 脚本应选 Bun。

主要能力与写法:脚本导出唯一的 async 函数 main,不要调用它;参数即脚本输入。凭据与配置通过 resource 类型的参数传入,用 RT 命名空间声明(如 RT.Stripe),不要硬编码或读环境变量。库会自动安装。优先使用 //native(轻量 V8 isolate,启动更快、并行度高),当代码或依赖需要 Node/Bun 运行时 API(node:*、文件系统、子进程、原生插件)时才用普通 bun。与 Windmill 平台交互优先用 windmill-client(wmill),而非手写 fetch。S3 操作使用 wmill.S3Object 及 loadS3File、loadS3FileStream、writeS3File。预处理器脚本函数名为 preprocessor,接收 event 参数,返回对象决定传给流程的参数。

CLI 用法:wmill script preview <path> 用于本地迭代(不部署);wmill script run <path> 仅在明确要测试已部署版本时用;wmill generate-metadata 在改动脚本(增删导入、改 main 参数)后重新生成本地 .script.yaml 与 .lock,并刷新 wmill-lock.yaml 中的内容哈希;仅操作本地文件,不是部署,但会重新解析依赖、可能提升未固定版本,建议先征得同意再运行,运行后对比 .lock 并告知依赖版本变化;可用 --dry-run 预览受影响项,用路径参数或 --strict-folder-boundaries 缩小范围;仅需刷新哈希时用 wmill generate-metadata rehash。部署需用户明确要求 deploy/publish/push,通过 git push 或 wmill sync push 进行。

限制与注意:preview 不部署但仍会执行代码,可能产生副作用。本地有改动时不要用 script run 代替 preview。编辑脚本后应同步元数据,否则 git-sync 与 CI 会出现多余差异。可用 wmill resource-type list --schema 查看可用资源类型。资料未给出具体收费、平台范围与效果说明。