UNPKG

botbuilder-dialogs-adaptive

Version:

Rule system for the Microsoft BotBuilder dialog system.

72 lines 3.24 kB
"use strict"; /** * @module botbuilder-dialogs-adaptive */ /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.LanguageGeneratorExtensions = exports.languagePolicyKey = exports.languageGeneratorManagerKey = exports.languageGeneratorKey = void 0; const botbuilder_dialogs_declarative_1 = require("botbuilder-dialogs-declarative"); const generators_1 = require("./generators"); const resourceExtensions_1 = require("./resourceExtensions"); /** * The key to get or set language generator from turn state. */ exports.languageGeneratorKey = Symbol('LanguageGenerator'); /** * The key to get or set language generator manager from turn state. */ exports.languageGeneratorManagerKey = Symbol('LanguageGeneratorManager'); /** * The key to get or set language policy from turn state. */ exports.languagePolicyKey = Symbol('LanguagePolicy'); /** * Extension methods for language generator. */ class LanguageGeneratorExtensions { /** * Register default LG file or a language generator as default language generator. * * @param dialogManager The dialog manager to add language generator to. * @param lg LG resource id (default: main.lg) or language generator to be added. * @returns dialog manager with language generator. */ static useLanguageGeneration(dialogManager, lg) { const resourceExplorer = dialogManager.initialTurnState.get(resourceExtensions_1.resourceExplorerKey) || new botbuilder_dialogs_declarative_1.ResourceExplorer(); let languageGenerator = lg || 'main.lg'; if (typeof languageGenerator === 'string') { const resource = resourceExplorer.getResource(languageGenerator); if (resource) { languageGenerator = new generators_1.ResourceMultiLanguageGenerator(languageGenerator); } else { languageGenerator = new generators_1.TemplateEngineLanguageGenerator(); } } let languageGeneratorManager = this._languageGeneratorManagers.get(resourceExplorer); if (!languageGeneratorManager) { languageGeneratorManager = new generators_1.LanguageGeneratorManager(resourceExplorer); this._languageGeneratorManagers.set(resourceExplorer, languageGeneratorManager); } dialogManager.initialTurnState.set(exports.languageGeneratorKey, languageGenerator); dialogManager.initialTurnState.set(exports.languageGeneratorManagerKey, languageGeneratorManager); return dialogManager; } /** * Register language policy as default policy. * * @param dialogManager The dialog manager to add language policy to. * @param policy Policy to use. * @returns dialog manager with language policy. */ static useLanguagePolicy(dialogManager, policy) { dialogManager.initialTurnState.set(exports.languagePolicyKey, policy); return dialogManager; } } exports.LanguageGeneratorExtensions = LanguageGeneratorExtensions; LanguageGeneratorExtensions._languageGeneratorManagers = new WeakMap(); //# sourceMappingURL=languageGeneratorExtensions.js.map