ContextNode.js 584 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import Node from './Node.js';
  2. class ContextNode extends Node {
  3. constructor( node, context = {} ) {
  4. super();
  5. this.node = node;
  6. this.context = context;
  7. }
  8. getNodeType( builder ) {
  9. return this.node.getNodeType( builder );
  10. }
  11. generate( builder, output ) {
  12. const previousContext = builder.getContext();
  13. builder.setContext( { ...builder.context, ...this.context } );
  14. const snippet = this.node.build( builder, output );
  15. builder.setContext( previousContext );
  16. return snippet;
  17. }
  18. }
  19. ContextNode.prototype.isContextNode = true;
  20. export default ContextNode;