dsh-im-ops/plugin-src/host/index.mjs
2026-08-15 15:40:53 +08:00

25 lines
906 B
JavaScript

import { apply as applyDingtalk } from './channels/dingtalk/index.mjs';
import { apply as applyFeishu } from './channels/feishu/index.mjs';
import { apply as applyWeixin } from './channels/weixin/index.mjs';
export const name = 'dsh-im-host';
export const inject = ['connection', 'credentials', 'webServer'];
export function createImHostPlugin(internals = {}) {
const startFeishu = internals.applyFeishu ?? applyFeishu;
const startWeixin = internals.applyWeixin ?? applyWeixin;
const startDingtalk = internals.applyDingtalk ?? applyDingtalk;
return Object.freeze({
name,
inject,
async apply(ctx, config = {}) {
await startFeishu(ctx, config.feishu ?? {});
await startWeixin(ctx, config.weixin ?? {});
await startDingtalk(ctx, config.dingtalk ?? {});
},
});
}
export async function apply(ctx, config = {}) {
return createImHostPlugin().apply(ctx, config);
}