SwitchNode.js 573 B

123456789101112131415161718192021222324252627282930313233
  1. import Node from '../core/Node.js';
  2. class SwitchNode extends Node {
  3. constructor( node, components = 'x' ) {
  4. super();
  5. this.node = node;
  6. this.components = components;
  7. }
  8. getType( builder ) {
  9. return builder.getTypeFromLength( this.components.length );
  10. }
  11. generate( builder, output ) {
  12. const nodeType = this.node.getType( builder );
  13. const nodeSnippet = this.node.build( builder, nodeType );
  14. const snippet = `${nodeSnippet}.${this.components}`;
  15. return builder.format( snippet, this.getType( builder ), output );
  16. }
  17. }
  18. export default SwitchNode;