Skip to main content

ComponentBase

Base class for all hardware components.

#Examples

TypeScript
// Simple component with only 'change' event
class Led extends ComponentBase<number> {
  // No event map needed, defaults to just 'change'
}
TypeScript
// Component with custom events
interface ButtonEventMap extends ComponentEventMap<number> {
  change: (value: number) => void;
  down: () => void;
  up: () => void;
  held: () => void;
}
class Button extends ComponentBase<number, ButtonEventMap> { ... }

#Extends

  • EventEmitter

#Extended by

#Type Parameters

Type ParameterDefault typeDescription
TunknownThe type of the component's value
E extends ComponentEventMap<T>ComponentEventMap<T>The complete event map for this component (optional, defaults to only 'change' event) By default, components only emit the 'change' event. If your component emits additional events, define a custom event map that extends ComponentEventMap. Subclasses must implement: - handleData(data): Process incoming data from Arduino

#Constructors

#Constructor

TypeScript
new ComponentBase<T, E>(options): ComponentBase<T, E>;

#Parameters

ParameterType
optionsComponentBaseOptions

#Returns

ComponentBase<T, E>

#Overrides

TypeScript
EventEmitter.constructor

#Accessors

#value

#Get Signature

TypeScript
get value(): T | undefined;

Get the current value of the component.

#Returns

T | undefined

#Methods

#cleanup()

TypeScript
cleanup(): void;

Cleanup resources when board closes. Override in subclasses to add component-specific cleanup.

#Returns

void


#handleData()

TypeScript
abstract handleData(data): void;

Handle incoming data from Arduino via serial protocol. Called by Board when data arrives for this component's ID.

#Parameters

ParameterType
dataunknown

#Returns

void


#off()

#Call Signature

TypeScript
off<K>(event, listener): this;

Alias for removeListener (Node.js EventEmitter compatibility).

#Type Parameters
Type Parameter
K extends string | number | symbol
#Parameters
ParameterType
eventK
listenerE[K]
#Returns

this

#Overrides
TypeScript
EventEmitter.off

#Call Signature

TypeScript
off(event, listener): this;

Alias for removeListener (Node.js EventEmitter compatibility).

#Parameters
ParameterType
eventstring | symbol
listener(...args) => void
#Returns

this

#Overrides
TypeScript
EventEmitter.off

#on()

#Call Signature

TypeScript
on<K>(event, listener): this;

Register an event listener with typed events.

#Type Parameters
Type Parameter
K extends string | number | symbol
#Parameters
ParameterType
eventK
listenerE[K]
#Returns

this

#Overrides
TypeScript
EventEmitter.on

#Call Signature

TypeScript
on(event, listener): this;

Register an event listener with typed events.

#Parameters
ParameterType
eventstring | symbol
listener(...args) => void
#Returns

this

#Overrides
TypeScript
EventEmitter.on

#once()

#Call Signature

TypeScript
once<K>(event, listener): this;

Register a one-time event listener with typed events.

#Type Parameters
Type Parameter
K extends string | number | symbol
#Parameters
ParameterType
eventK
listenerE[K]
#Returns

this

#Overrides
TypeScript
EventEmitter.once

#Call Signature

TypeScript
once(event, listener): this;

Register a one-time event listener with typed events.

#Parameters
ParameterType
eventstring | symbol
listener(...args) => void
#Returns

this

#Overrides
TypeScript
EventEmitter.once

#removeAllListeners()

#Call Signature

TypeScript
removeAllListeners<K>(event?): this;

Remove all listeners for a specific event, or all events if no event specified.

#Type Parameters
Type Parameter
K extends string | number | symbol
#Parameters
ParameterType
event?K
#Returns

this

#Overrides
TypeScript
EventEmitter.removeAllListeners

#Call Signature

TypeScript
removeAllListeners(event?): this;

Remove all listeners for a specific event, or all events if no event specified.

#Parameters
ParameterType
event?string | symbol
#Returns

this

#Overrides
TypeScript
EventEmitter.removeAllListeners

#removeListener()

#Call Signature

TypeScript
removeListener<K>(event, listener): this;

Remove an event listener with typed events.

#Type Parameters
Type Parameter
K extends string | number | symbol
#Parameters
ParameterType
eventK
listenerE[K]
#Returns

this

#Overrides
TypeScript
EventEmitter.removeListener

#Call Signature

TypeScript
removeListener(event, listener): this;

Remove an event listener with typed events.

#Parameters
ParameterType
eventstring | symbol
listener(...args) => void
#Returns

this

#Overrides
TypeScript
EventEmitter.removeListener

#setBoard()

TypeScript
setBoard(board): void;

#Parameters

ParameterType
boardBoard

#Returns

void