aural_rendering.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.setSeparator = setSeparator;
  4. exports.getSeparator = getSeparator;
  5. exports.markup = markup;
  6. exports.merge = merge;
  7. exports.finalize = finalize;
  8. exports.error = error;
  9. exports.registerRenderer = registerRenderer;
  10. exports.isXml = isXml;
  11. const engine_js_1 = require("../common/engine.js");
  12. const EngineConst = require("../common/engine_const.js");
  13. const acss_renderer_js_1 = require("./acss_renderer.js");
  14. const layout_renderer_js_1 = require("./layout_renderer.js");
  15. const punctuation_renderer_js_1 = require("./punctuation_renderer.js");
  16. const sable_renderer_js_1 = require("./sable_renderer.js");
  17. const span_js_1 = require("./span.js");
  18. const ssml_renderer_js_1 = require("./ssml_renderer.js");
  19. const string_renderer_js_1 = require("./string_renderer.js");
  20. const xml_renderer_js_1 = require("./xml_renderer.js");
  21. const xmlInstance = new ssml_renderer_js_1.SsmlRenderer();
  22. const renderers = new Map([
  23. [EngineConst.Markup.NONE, new string_renderer_js_1.StringRenderer()],
  24. [EngineConst.Markup.COUNTING, new string_renderer_js_1.CountingRenderer()],
  25. [EngineConst.Markup.PUNCTUATION, new punctuation_renderer_js_1.PunctuationRenderer()],
  26. [EngineConst.Markup.LAYOUT, new layout_renderer_js_1.LayoutRenderer()],
  27. [EngineConst.Markup.ACSS, new acss_renderer_js_1.AcssRenderer()],
  28. [EngineConst.Markup.SABLE, new sable_renderer_js_1.SableRenderer()],
  29. [EngineConst.Markup.VOICEXML, xmlInstance],
  30. [EngineConst.Markup.SSML, xmlInstance]
  31. ]);
  32. function setSeparator(sep) {
  33. const renderer = renderers.get(engine_js_1.Engine.getInstance().markup);
  34. if (renderer) {
  35. renderer.separator = sep;
  36. }
  37. }
  38. function getSeparator() {
  39. const renderer = renderers.get(engine_js_1.Engine.getInstance().markup);
  40. return renderer ? renderer.separator : '';
  41. }
  42. function markup(descrs) {
  43. const renderer = renderers.get(engine_js_1.Engine.getInstance().markup);
  44. if (!renderer) {
  45. return '';
  46. }
  47. return renderer.markup(descrs);
  48. }
  49. function merge(strs) {
  50. const span = strs.map((s) => {
  51. return typeof s === 'string' ? span_js_1.Span.stringEmpty(s) : s;
  52. });
  53. const renderer = renderers.get(engine_js_1.Engine.getInstance().markup);
  54. if (!renderer) {
  55. return strs.join();
  56. }
  57. return renderer.merge(span);
  58. }
  59. function finalize(str) {
  60. const renderer = renderers.get(engine_js_1.Engine.getInstance().markup);
  61. if (!renderer) {
  62. return str;
  63. }
  64. return renderer.finalize(str);
  65. }
  66. function error(key) {
  67. const renderer = renderers.get(engine_js_1.Engine.getInstance().markup);
  68. if (!renderer) {
  69. return '';
  70. }
  71. return renderer.error(key);
  72. }
  73. function registerRenderer(type, renderer) {
  74. renderers.set(type, renderer);
  75. }
  76. function isXml() {
  77. return renderers.get(engine_js_1.Engine.getInstance().markup) instanceof xml_renderer_js_1.XmlRenderer;
  78. }