主要利用 bun:ffi 的功能,将以前的 golang 逻辑迁移为新的统一的 ts 代码,增加类型安全,代码一个仓库里方便维护。
目前包里带的 .so 只能在 glibc, amd64,linux 下执行,没测试过 windows 。
代码内测试用例
make run-bun
# 执行测试,会输出 10 条消息 - 注意 IP 白名单,可以增加 WWF_PROXY 环境变量
WWF_CORP_ID=ID WWF_CORP_SECRET=SECRET bun test ./src/wecom/archive/bun/WeWorkFinanceClient.bun.test.ts
测试代码
if (process.env.WWF_PRIVATE_KEY_FILE) {
privateKey = await fs.readFile(process.env.WWF_PRIVATE_KEY_FILE, 'utf-8');
}
const client = createWeWorkFinanceClientFromEnv({
corpId: process.env.WWF_CORP_ID,
corpSecret: process.env.WWF_CORP_SECRET,
privateKey,
});
// the original data
const data = client.getChatData({ limit: 10 });
console.log(data);
// the decrypted data
if (privateKey) {
console.log(client.getMessage({ limit: 10 }));
}
// get file
client.getMediaData({ fileId: '' });
源码地址 https://github.com/wenerme/wode/tree/main/packages/client#wechatarchivebun
以前 Golang 的实现 https://github.com/wenerme/go-wecom/tree/main/WeWorkFinanceSDK