UNPKG

@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
"use strict"; 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=