smelt.signal¶
Tier: Host - Available in every runtime, including headless mode.
Visibility: Public - Stable Lua API intended for user config and plugins.
Named reactive values. smelt.signal.get(name) reads the current value, smelt.signal.set(name, value) publishes a new value, smelt.signal.subscribe(name, handler) observes changes, and smelt.signal.new(name, initial) declares a new signal. smelt.signal.glob subscribes across every name matching a glob pattern. Use smelt.events.on for event-shaped signals where only occurrences matter.
smelt.signal.get¶
Types: smelt.signal.Name
Return the current value of signal name, or nil when the signal is not declared.
smelt.signal.glob¶
Types: smelt.Reg
Register handler(name, value, previous) for every signal whose name matches pattern (glob syntax). Returns a Reg whose :remove() drops the glob subscription.
smelt.signal.new¶
Types: smelt.signal.Name
Declare a signal named name with initial as its starting value. No-op if the signal already exists.
smelt.signal.set¶
Types: smelt.signal.Name
Publish value for signal name.
smelt.signal.subscribe¶
Types: smelt.signal.Name, smelt.Reg
Register handler(value, previous) for signal name. Returns a Reg whose :remove() drops the subscription.