UNPKG

@juzi/wechaty

Version:

Wechaty is a RPA SDK for Chatbot Makers.

50 lines 1.93 kB
import * as PUPPET from '@juzi/wechaty-puppet'; import { log } from '@juzi/wechaty-puppet'; import { FileBox } from 'file-box'; import { DelayImpl, LocationImpl, MessageImpl, MiniProgramImpl, UrlLinkImpl, ContactImpl, PostImpl, ChannelImpl, } from '../user-modules/mod.js'; async function sayableToPayload(sayable) { log.verbose('Wechaty', 'sayableToPayload(%s)', sayable); if (typeof sayable === 'string') { return PUPPET.payloads.sayable.text(sayable); } else if (typeof sayable === 'number') { return PUPPET.payloads.sayable.text(String(sayable)); } else if (ContactImpl.valid(sayable)) { return PUPPET.payloads.sayable.contact(sayable.id); } else if (DelayImpl.validInstance(sayable)) { return undefined; } else if (FileBox.valid(sayable)) { return PUPPET.payloads.sayable.attachment(sayable); } else if (LocationImpl.validInstance(sayable)) { return PUPPET.payloads.sayable.location(sayable.payload); } else if (MessageImpl.valid(sayable)) { const messageSayable = await sayable.toSayable(); if (!messageSayable) { return undefined; } return sayableToPayload(messageSayable); } else if (MiniProgramImpl.validInstance(sayable)) { return PUPPET.payloads.sayable.miniProgram(sayable.payload); } else if (PostImpl.validInstance(sayable)) { return PUPPET.payloads.sayable.post(sayable.payload); } else if (UrlLinkImpl.validInstance(sayable)) { return PUPPET.payloads.sayable.url(sayable.payload); } else if (ChannelImpl.validInstance(sayable)) { return PUPPET.payloads.sayable.channel(sayable.payload); } else { log.error('Wechaty', 'sayableToPayload() unsupported sayable: %s', sayable); return undefined; } } export { sayableToPayload, }; //# sourceMappingURL=sayable-to-payload.js.map