UNPKG

bottender

Version:

A framework for building conversational user interfaces.

135 lines 4.68 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const omit_1 = __importDefault(require("lodash/omit")); const delay_1 = __importDefault(require("delay")); const methodMap = { messenger: [ ['sendText', 2], ['sendMessage', 2], ['sendAttachment', 2], ['sendImage', 2], ['sendAudio', 2], ['sendVideo', 2], ['sendFile', 2], ['sendQuickReplies', 3], ['sendTemplate', 2], ['sendGenericTemplate', 2], ['sendButtonTemplate', 3], ['sendListTemplate', 3], ['sendOpenGraphTemplate', 2], ['sendMediaTemplate', 2], ['sendReceiptTemplate', 2], ['sendAirlineBoardingPassTemplate', 2], ['sendAirlineCheckinTemplate', 2], ['sendAirlineItineraryTemplate', 2], ['sendAirlineFlightUpdateTemplate', 2], ], line: [ ['sendText', 2], ['sendImage', 3], ['sendVideo', 3], ['sendAudio', 3], ['sendLocation', 2], ['sendSticker', 3], ['sendImagemap', 3], ['sendButtonTemplate', 3], ['sendConfirmTemplate', 3], ['sendCarouselTemplate', 3], ['sendImageCarouselTemplate', 3], ['replyText', 2], ['replyImage', 3], ['replyVideo', 3], ['replyAudio', 3], ['replyLocation', 2], ['replySticker', 3], ['replyImagemap', 3], ['replyButtonTemplate', 3], ['replyConfirmTemplate', 3], ['replyCarouselTemplate', 3], ['replyImageCarouselTemplate', 3], ['pushText', 2], ['pushImage', 3], ['pushVideo', 3], ['pushAudio', 3], ['pushLocation', 2], ['pushSticker', 3], ['pushImagemap', 3], ['pushButtonTemplate', 3], ['pushConfirmTemplate', 3], ['pushCarouselTemplate', 3], ['pushImageCarouselTemplate', 3], ], slack: [ ['sendText', 2], ['postMessage', 2], ], telegram: [ ['sendText', 2], ['sendMessage', 2], ['sendPhoto', 2], ['sendAudio', 2], ['sendDocument', 2], ['sendSticker', 2], ['sendVideo', 2], ['sendVoice', 2], ['sendVideoNote', 2], ['sendMediaGroup', 2], ['sendLocation', 2], ['sendVenue', 2], ['sendContact', 2], ], viber: [ ['sendText', 2], ['sendMessage', 2], ['sendPicture', 2], ['sendVideo', 2], ['sendFile', 2], ['sendContact', 2], ['sendLocation', 2], ['sendURL', 2], ['sendSticker', 2], ['sendCarouselContent', 2], ], }; exports.default = (options) => (context) => { const methods = methodMap[context.platform]; if (!methods) return; for (let i = 0; i < methods.length; i++) { const [method, len] = methods[i]; if (context[method]) { const _method = context[method]; context[method] = function (...args) { return __awaiter(this, void 0, void 0, function* () { const methodOptions = args[len - 1]; const delay = methodOptions && typeof methodOptions === 'object' && typeof methodOptions.delay === 'number' ? methodOptions.delay : options.delay; if (methodOptions) { args[len - 1] = omit_1.default(methodOptions, ['delay']); } if (this.typingOn) { yield this.typingOn(); } yield delay_1.default(delay); return _method.call(context, ...args); }); }; } } }; //# sourceMappingURL=withTyping.js.map