speech-rule-engine
Version:
A standalone speech rule engine for XML structures, based on the original engine from ChromeVox.
50 lines • 1.51 kB
JavaScript
import { AuditoryDescription } from '../audio/auditory_description.js';
import * as XpathUtil from '../common/xpath_util.js';
import { Engine } from '../common/engine.js';
export function nodeCounter(nodes, context) {
const localLength = nodes.length;
let localCounter = 0;
let localContext = context;
if (!context) {
localContext = '';
}
return function () {
if (localCounter < localLength) {
localCounter += 1;
}
return localContext + ' ' + localCounter;
};
}
export function pauseSeparator(_nodes, context) {
const numeral = parseFloat(context);
const value = isNaN(numeral) ? context : numeral;
return function () {
return [
AuditoryDescription.create({
text: '',
personality: { pause: value }
})
];
};
}
export function contentIterator(nodes, context) {
let contentNodes;
if (nodes.length > 0) {
contentNodes = XpathUtil.evalXPath('../../content/*', nodes[0]);
}
else {
contentNodes = [];
}
return function () {
const content = contentNodes.shift();
const contextDescr = context
? [AuditoryDescription.create({ text: context }, { translate: true })]
: [];
if (!content) {
return contextDescr;
}
const descrs = Engine.evaluateNode(content);
return contextDescr.concat(descrs);
};
}
//# sourceMappingURL=store_util.js.map