UNPKG

@juzi/wechaty

Version:

Wechaty is a RPA SDK for Chatbot Makers.

81 lines 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deliverSayableConversationPuppet = void 0; const file_box_1 = require("file-box"); const mod_js_1 = require("../user-modules/mod.js"); /** * TODO: add unit test to ensure the interface validation code works */ const deliverSayableConversationPuppet = (puppet) => (conversationId) => async (sayable, options) => { let msgId; if (typeof sayable === 'number') { sayable = String(sayable); } if (typeof sayable === 'string') { return puppet.messageSendText(conversationId, sayable, { mentionIdList: options?.mentionList?.map(c => c === '@all' ? '@all' : c.id), quoteId: options?.quoteMessage?.id, }); } /** * Huan(202110): Checking `looseInstanceOf` is enough for the following types: * so we do not check `interfaceOfClass` anymore because it will consume more resources. */ if (file_box_1.FileBox.valid(sayable)) { /** * 1. File */ msgId = await puppet.messageSendFile(conversationId, sayable); } else if (mod_js_1.MessageImpl.validInstance(sayable)) { /** * 2. Message */ msgId = await puppet.messageForward(conversationId, sayable.id); } else if (mod_js_1.ContactImpl.validInstance(sayable)) { /** * 3. Contact */ msgId = await puppet.messageSendContact(conversationId, sayable.id); } else if (mod_js_1.UrlLinkImpl.validInstance(sayable)) { /** * 4. Link Message */ msgId = await puppet.messageSendUrl(conversationId, sayable.payload); } else if (mod_js_1.MiniProgramImpl.validInstance(sayable)) { /** * 5. Mini Program */ msgId = await puppet.messageSendMiniProgram(conversationId, sayable.payload); } else if (mod_js_1.LocationImpl.validInstance(sayable)) { /** * 6. Location */ msgId = await puppet.messageSendLocation(conversationId, sayable.payload); } else if (mod_js_1.DelayImpl.validInstance(sayable)) { /** * 7. Delay for a while */ await sayable.wait(); } else if (mod_js_1.PostImpl.validInstance(sayable)) { /** * 8. Post */ msgId = await puppet.messageSendPost(conversationId, sayable.payload); } else if (mod_js_1.ChannelImpl.validInstance(sayable)) { msgId = await puppet.messageSendChannel(conversationId, sayable.payload); } else { throw new Error('unsupported arg: ' + sayable); } return msgId; }; exports.deliverSayableConversationPuppet = deliverSayableConversationPuppet; //# sourceMappingURL=deliver-sayable.js.map