UNPKG

lexica-dialog-core

Version:
46 lines 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const intentExecutorMiddleware = async (context, next) => { const { uni, uniConfigs, request, messenger, commands, intentRepository, sessionRepository, configRepository, messageRepository, issueRepository, senderInfoRepository, sessionService, executors, requestMessage, issue, senderInfo, logger, } = context; if (!lodash_1.isNil(request) && !lodash_1.isNil(sessionService)) { const { locale, senderId } = request; const promises = commands.toArray().map(async (command) => { if (!lodash_1.isNil(command.intent) && !lodash_1.isNil(command.intent.executors) && command.intent.executors.length > 0) { const executorContext = { command, configRepository, intentRepository, issue, issueRepository, locale, messageRepository, messenger, messengerName: messenger.name, requestMessage, senderId, senderInfo, senderInfoRepository, sessionRepository, sessionService, uni, uniConfigs, }; for (const name of command.intent.executors) { if (executors.has(name)) { await executors.get(name)(executorContext); } else { logger.warn('Executor not found: [%s]', name); } } context.issue = executorContext.issue; context.requestMessage = executorContext.requestMessage; } }); await Promise.all(promises); } await next(); }; exports.default = intentExecutorMiddleware; //# sourceMappingURL=IntentExecutorMiddleware.js.map