InputNode.js 978 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import Node from './Node.js';
  2. import { getValueType, getValueFromType } from './NodeUtils.js';
  3. class InputNode extends Node {
  4. constructor( value, nodeType = null ) {
  5. super( nodeType );
  6. this.value = value;
  7. }
  8. getNodeType( /*builder*/ ) {
  9. if ( this.nodeType === null ) {
  10. return getValueType( this.value );
  11. }
  12. return this.nodeType;
  13. }
  14. getInputType( builder ) {
  15. return this.getNodeType( builder );
  16. }
  17. serialize( data ) {
  18. super.serialize( data );
  19. data.value = this.value?.toArray?.() || this.value;
  20. data.valueType = getValueType( this.value );
  21. data.nodeType = this.nodeType;
  22. }
  23. deserialize( data ) {
  24. super.deserialize( data );
  25. this.nodeType = data.nodeType;
  26. this.value = getValueFromType( data.valueType );
  27. this.value = this.value?.fromArray?.( data.value ) || data.value;
  28. }
  29. generate( /*builder, output*/ ) {
  30. console.warn('Abstract function.');
  31. }
  32. }
  33. InputNode.prototype.isInputNode = true;
  34. export default InputNode;