botbuilder-dialogs-adaptive
Version:
Rule system for the Microsoft BotBuilder dialog system.
72 lines • 2.33 kB
JavaScript
;
/**
* @module botbuilder-dialogs-adaptive
*/
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntityAssignments = void 0;
const entityAssignment_1 = require("./entityAssignment");
const events = 'this.events';
/**
* Tracks entity related events to surface.
*
* @remarks When processing entities possible ambiguities are identified and when resolved they turn into assign events.
* This tracking persists across multiple input utterances.
*/
class EntityAssignments {
/**
* Initializes a new instance of the [EntityAssignments](xref:botbuilder-dialogs-adaptive.EntityAssignments) class.
*
* @param assignments A list of [EntityAssignments](xref:botbuilder-dialogs-adaptive.EntityAssignments) to use.
*/
constructor(assignments = []) {
this.assignments = assignments;
}
/**
* Read entity event queue from memory.
*
* @param actionContext Memory context.
* @returns Entity event queue.
*/
static read(actionContext) {
var _a;
const queuesObject = actionContext.state.getValue(events, new EntityAssignments());
const assignments = (_a = queuesObject.assignments) === null || _a === void 0 ? void 0 : _a.map((assignment) => new entityAssignment_1.EntityAssignment(assignment));
return new EntityAssignments(assignments);
}
/**
* Write state into memory.
*
* @param actionContext Memory context.
*/
write(actionContext) {
actionContext.state.setValue(events, this);
}
/**
* Gets the next entity event to surface.
*
* @returns The next entity event to surface.
*/
get nextAssignment() {
if (this.assignments.length > 0) {
return this.assignments[0];
}
return undefined;
}
/**
* Remove the current event and update the memory.
*
* @param actionContext Memory context.
* @returns Removed event.
*/
dequeue(actionContext) {
const assignment = this.assignments.shift();
this.write(actionContext);
return assignment;
}
}
exports.EntityAssignments = EntityAssignments;
//# sourceMappingURL=entityAssignments.js.map