recime-bot-runtime
Version:
This runtime is intended to run inside a micro-service container with platform specific integration and module interpreter.
60 lines (59 loc) • 2.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var recime_bot_extension_1 = require("recime-bot-extension");
var Message = /** @class */ (function () {
function Message(platform) {
this.__ = recime_bot_extension_1.default[platform];
}
Message.prototype.normalizeButton = function (__, content) {
if (content.buttons) {
return content.buttons.map(function (button) {
switch (button.type) {
case 'reply': {
return __.postbackButton(button.title || button.reply, "reply-" + button.reply);
}
case 'phone_number': {
button.payload = button.payload.replace(/[\s()-]+/ig, '');
return button;
}
case 'element_share': {
return __.shareButton(button.content);
}
default: {
return button;
}
}
});
}
return void 0;
};
Message.prototype.eval = function (message) {
var _this = this;
var __ = this.__;
switch (message.type) {
case 'text': {
if (message.content && message.content.text.trim()) {
return __.text(message.content.text, this.normalizeButton(__, message.content));
}
}
case 'image':
case 'audio':
case 'video':
case 'file': {
return __[message.type](message.content.url, this.normalizeButton(__, message.content), message.content.assetId);
}
case 'button-template': {
return __.buttonTemplate(message.content.text, this.normalizeButton(__, message.content));
}
case 'card-template':
case 'wechat-article':
case 'generic-template': {
return __.genericTemplate(message.content.elements.map(function (e) {
return __.genericItem(e.title, e.digest || e.subtitle, e.imageUrl, e.contentSourceUrl || e.actionUrl, _this.normalizeButton(__, e), e.assetId, e.content, e.author);
}));
}
}
};
return Message;
}());
exports.Message = Message;