@microsoft/teams.apps
Version:
<p> <a href="https://www.npmjs.com/package/@microsoft/teams.apps" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.apps/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.apps?activeTab=code
48 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TurnStateContainer = void 0;
/** Conversation and user state loaded for one activity turn. */
class TurnStateContainer {
/** State shared by all users in the current conversation. */
conversation;
/**
* State for the current user within the current conversation.
* Undefined when the activity has no sender ID.
*/
user;
deleter;
/**
* Creates a loaded state container.
* @param conversation Conversation-scoped state.
* @param user Optional user-within-conversation state.
* @param deleter Optional callback that removes persisted scopes. Normally supplied by the app.
*/
constructor(conversation, user, deleter) {
this.conversation = conversation;
this.user = user;
this.deleter = deleter;
}
/**
* Deletes both persisted scopes and clears their in-memory snapshots.
*
* The backing delete must succeed before the in-memory state changes. Values
* written after this call are persisted normally at the end of the turn.
*/
async delete() {
if (!this.deleter) {
throw new Error('State deletion is not available for a container that was not loaded by the app.');
}
await this.deleter();
this.conversation.clear();
this.user?.clear();
this.conversation.markClean();
this.user?.markClean();
}
/** Seals both scopes after activity processing completes. */
seal() {
this.conversation.seal();
this.user?.seal();
}
}
exports.TurnStateContainer = TurnStateContainer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlL2NvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxnRUFBZ0U7QUFDaEUsTUFBYSxrQkFBa0I7SUFDN0IsNkRBQTZEO0lBQ3BELFlBQVksQ0FBWTtJQUVqQzs7O09BR0c7SUFDTyxJQUFJLENBQWE7SUFFVCxPQUFPLENBQWdCO0lBRXhDOzs7OztPQUtHO0lBQ0gsWUFDRSxZQUF1QixFQUN2QixJQUFnQixFQUNoQixPQUFzQjtRQUV0QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUY7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYixpRkFBaUYsQ0FDbEYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsSUFBSTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUF0REQsZ0RBc0RDIn0=