lexica-dialog-core
Version:
Core server for Lexica dialog agent.
24 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
const immutable_1 = require("immutable");
const intentDefaultFeatureMiddleware = async (context, next) => {
const { sessionService, commands } = context;
if (!lodash_1.isNil(sessionService)) {
const memoriesFeatures = sessionService.getMemoriesFeatures();
commands.toArray().forEach(command => {
const { features, intent } = command;
if (!lodash_1.isNil(intent) && !lodash_1.isNil(intent.defaultFeatures)) {
const defaultFeatures = intent.defaultFeatures;
let processedFeatures = lodash_1.defaultTo(features, immutable_1.Map());
processedFeatures = Object.keys(intent.defaultFeatures)
.filter(key => !processedFeatures.has(key))
.reduce((feature, key) => feature.set(key, defaultFeatures[key]), processedFeatures);
command.features = processedFeatures;
}
});
}
await next();
};
exports.default = intentDefaultFeatureMiddleware;
//# sourceMappingURL=IntentDefaultFeatureMiddleware.js.map