import Node from './Node.js'; class ContextNode extends Node { constructor( node, context = {} ) { super(); this.isContextNode = true; this.node = node; this.context = context; } getNodeType( builder ) { return this.node.getNodeType( builder ); } construct( builder ) { const previousContext = builder.getContext(); builder.setContext( { ...builder.context, ...this.context } ); const node = this.node.build( builder ); builder.setContext( previousContext ); return node; } generate( builder, output ) { const previousContext = builder.getContext(); builder.setContext( { ...builder.context, ...this.context } ); const snippet = this.node.build( builder, output ); builder.setContext( previousContext ); return snippet; } } export default ContextNode;