Lox Nexus

Class: ValueFactory

Factories and helpers, used as Value.number(3) or Value.equals(a, b). The factories copy structured payloads so a caller mutating its input cannot change a value already on the bus. The structured factories (singleChannel, rgbw, tunableWhite, t5) round and clamp to what the wire carries; none of them validates or throws. Use ValueSchema for untrusted input and Converter for coercion.

Constructors

Constructor

new ValueFactory(): ValueFactory

Returns

ValueFactory

Properties

types

readonly types: readonly ("string" | "number" | "boolean" | "null" | "singleChannel" | "rgbw" | "tunableWhite" | "t5")[]

every value type, in a stable order for UIs and schemas

Methods

null()

null(): object

Returns

object

type

type: "null"


boolean()

boolean(value): object

Parameters

value

boolean

Returns

object

type

type: "boolean"

value

value: boolean


number()

number(value): object

Parameters

value

number

Returns

object

type

type: "number"

value

value: number


string()

string(value): object

Parameters

value

string

Returns

object

type

type: "string"

value

value: string


singleChannel()

singleChannel(value): object

structured factories normalise to wire resolution: whole percent (clamped 0–100), 0.1 s fades

Parameters

value

SingleChannel

Returns

object

type

type: "singleChannel"

value

value: SingleChannel


rgbw()

rgbw(value): object

Parameters

value

Rgbw

Returns

object

type

type: "rgbw"

value

value: Rgbw


tunableWhite()

tunableWhite(value): object

Parameters

value

TunableWhite

Returns

object

type

type: "tunableWhite"

value

value: TunableWhite


t5()

t5(value): object

masks outside 0–31 or non-integers become 0 (no button)

Parameters

value

T5

Returns

object

type

type: "t5"

value

value: T5


isType()

isType(type): type is "string" | "number" | "boolean" | "null" | "singleChannel" | "rgbw" | "tunableWhite" | "t5"

type guard for strings from outside (HTTP, config)

Parameters

type

string

Returns

type is "string" | "number" | "boolean" | "null" | "singleChannel" | "rgbw" | "tunableWhite" | "t5"


equals()

equals(a, b): boolean

structural equality; 0 equals -0, and NaN equals NaN so repeated NaN readings dedupe

Parameters

a

Value | undefined

b

Value | undefined

Returns

boolean