phrase-engine
Version:
Language files on steroids for conversational UIs that aren't boring.
47 lines • 1.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const RefableNode_1 = require("../RefableNode");
const peek_1 = require("../peek");
const text_1 = require("../text");
const textSupport_1 = require("../textSupport");
class MaybeNode extends RefableNode_1.RefableNode {
validateNodeName(name) {
return name === 'maybe';
}
init(root, packet) {
this.setNextNode(text_1.default.call(this, root, packet, textSupport_1.default));
this.__skip = peek_1.default(packet.next_stack);
this.registararGenerate(root);
}
eval(packet, branch = Math.round(Math.random() * 453745)) {
!!(branch & 1) && this.registerRender(packet);
return [
this.__skip,
this.__next_node
][branch & 1].eval(packet);
}
*gen(packet) {
this.registerRender(packet);
yield* this.next().gen(packet);
this.deregisterRender(packet);
yield* this.__skip.gen(packet);
}
count(packet) {
let ret;
this.registerRender(packet);
ret = this.next().count(packet);
this.deregisterRender(packet);
ret += this.__skip.count(packet);
return ret;
}
vars(packet) {
if (!this.__vared) {
this.__next_node.vars(packet);
this.__skip.vars(packet);
this.__vared = true;
}
return packet;
}
}
exports.MaybeNode = MaybeNode;
//# sourceMappingURL=MaybeNode.js.map