botbuilder-dialogs-adaptive
Version:
Rule system for the Microsoft BotBuilder dialog system.
72 lines • 3.24 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.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