/** * @license * Copyright 2023 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type {Block} from '../block.js'; import type {Connection} from '../connection.js'; import {ConnectionType} from '../connection_type.js'; import {Input} from './input.js'; import {inputTypes} from './input_types.js'; /** Represents an input on a block with a statement connection. */ export class StatementInput extends Input { readonly type = inputTypes.STATEMENT; public connection: Connection; /** * @param name Language-neutral identifier which may used to find this input * again. * @param block The block containing this input. */ constructor( public name: string, block: Block, ) { // Errors are maintained for people not using typescript. if (!name) throw new Error('Statement inputs must have a non-empty name'); super(name, block); this.connection = this.makeConnection(ConnectionType.NEXT_STATEMENT); } }