UNPKG

lexica-dialog-core

Version:
36 lines 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const immutable_1 = require("immutable"); const intentPreProcessorMiddleware = async (context, next) => { const { request, commands, preProcessors, uni, uniConfigs, messenger, issue, senderInfo } = context; if (!lodash_1.isNil(request)) { const { locale, senderId } = request; const processorContext = { issue, locale, messengerName: messenger.name, senderId, senderInfo, uni, uniConfigs, }; const commandPromises = commands.toArray().map(async (command) => { const { intent, features } = command; let processedFeatures = lodash_1.defaultTo(features, immutable_1.Map()); if (!lodash_1.isNil(intent) && !lodash_1.isNil(intent.preProcessors)) { const intentPreProcessors = intent.preProcessors .filter(preProcessorName => preProcessors.has(preProcessorName)) .map(preProcessorName => preProcessors.get(preProcessorName)); for (const preProcessor of intentPreProcessors) { processedFeatures = processedFeatures.merge(await preProcessor(processorContext, processedFeatures)); } command.features = processedFeatures; } }); await Promise.all(commandPromises); } await next(); }; exports.default = intentPreProcessorMiddleware; //# sourceMappingURL=IntentPreProcessorMiddleware.js.map