1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import Node, { addNodeClass } from '../core/Node.js';
- class ConvertNode extends Node {
- constructor( node, convertTo ) {
- super();
- this.node = node;
- this.convertTo = convertTo;
- }
- getNodeType( builder ) {
- const requestType = this.node.getNodeType( builder );
- let convertTo = null;
- for ( const overloadingType of this.convertTo.split( '|' ) ) {
- if ( convertTo === null || builder.getTypeLength( requestType ) === builder.getTypeLength( overloadingType ) ) {
- convertTo = overloadingType;
- }
- }
- return convertTo;
- }
- serialize( data ) {
- super.serialize( data );
- data.convertTo = this.convertTo;
- }
- deserialize( data ) {
- super.deserialize( data );
- this.convertTo = data.convertTo;
- }
- generate( builder, output ) {
- const node = this.node;
- const type = this.getNodeType( builder );
- const snippet = node.build( builder, type );
- return builder.format( snippet, type, output );
- }
- }
- export default ConvertNode;
- addNodeClass( 'ConvertNode', ConvertNode );
|