UNPKG

botbuilder-dialogs-adaptive

Version:

Rule system for the Microsoft BotBuilder dialog system.

70 lines 3.25 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.TemplateEngineLanguageGenerator = void 0; const botbuilder_dialogs_1 = require("botbuilder-dialogs"); const botbuilder_dialogs_declarative_1 = require("botbuilder-dialogs-declarative"); const botbuilder_lg_1 = require("botbuilder-lg"); const languageResourceLoader_1 = require("../languageResourceLoader"); const languageGeneratorManager_1 = require("./languageGeneratorManager"); /** * [LanguageGenerator](xref:botbuilder-dialogs-adaptive.LanguageGenerator) implementation which uses LGFile. */ class TemplateEngineLanguageGenerator extends botbuilder_dialogs_1.Configurable { /** * Initializes a new instance of the [TemplateEngineLanguageGenerator](xref:botbuilder-dialogs-adaptive.TemplateEngineLanguageGenerator) class. * * @param arg1 Optional. An LG [Templates](xref:botbuilder-lg.Templates) or a [Resource](xref:botbuilder-dialogs-declarative.Resource). * @param arg2 Optional. A `Map` object with a `Resource` array for each key. */ constructor(arg1, arg2) { super(); this.DEFAULTLABEL = 'Unknown'; this.id = ''; if (arguments.length === 0) { this.lg = new botbuilder_lg_1.Templates(); } else if (arguments.length === 1 && arg1 instanceof botbuilder_lg_1.Templates) { this.lg = arg1; } else if (arguments.length === 2 && arg1 instanceof botbuilder_dialogs_declarative_1.Resource && arg2 instanceof Map) { const resourceMapping = arg2; this.id = arg1.id; const { prefix: _, language: locale } = languageResourceLoader_1.LanguageResourceLoader.parseLGFileName(this.id); const importResolver = languageGeneratorManager_1.LanguageGeneratorManager.resourceExplorerResolver(locale, resourceMapping); const lgResource = new botbuilder_lg_1.LGResource(this.id, arg1.fullName, arg1.readText()); this.lg = botbuilder_lg_1.Templates.parseResource(lgResource, importResolver); } } /** * Method to generate text from given template and data. * * @param dialogContext Context for the current turn of conversation. * @param template Template to evaluate. * @param data Data to bind to. * @returns A Promise string with the evaluated result. */ generate(dialogContext, template, data) { try { const lgOptions = new botbuilder_lg_1.EvaluationOptions(); lgOptions.locale = dialogContext.getLocale(); const result = this.lg.evaluateText(template, data, lgOptions); return Promise.resolve(result); } catch (e) { if (this.id !== undefined && this.id === '') { throw Error(`${this.id}:${e}`); } throw Error(e); } } } exports.TemplateEngineLanguageGenerator = TemplateEngineLanguageGenerator; TemplateEngineLanguageGenerator.$kind = 'Microsoft.TemplateEngineLanguageGenerator'; //# sourceMappingURL=templateEngineLanguageGenerator.js.map