import { freeze } from '../util/object-utils.js' ; import { OperationNode } from './operation-node.js' ; export interface ValueNode extends OperationNode { readonly kind : 'ValueNode' ; readonly value : unknown ; readonly immediate ? : boolean ; } internal export const ValueNode = freeze ( { is ( node ) { return node . kind === 'ValueNode' ; } , create ( value ) { return freeze ( { kind : 'ValueNode' , value , } ) ; } , createImmediate ( value ) { return freeze ( { kind : 'ValueNode' , value , immediate : true , } ) ; } , } ) ;