UNPKG

@felixgeelhaar/govee-api-client

Version:

Enterprise-grade TypeScript client library for the Govee Developer REST API

69 lines 1.69 kB
export class Brightness { constructor(level) { this.validateLevel(level); this._level = Math.round(level); } validateLevel(value) { if (!Number.isFinite(value)) { throw new Error('Brightness level must be a finite number'); } if (value < 0 || value > 100) { throw new Error(`Brightness level must be between 0 and 100, got ${value}`); } } get level() { return this._level; } equals(other) { return this._level === other._level; } toString() { return `${this._level}%`; } toObject() { return { level: this._level }; } static fromObject(obj) { return new Brightness(obj.level); } static min() { return new Brightness(0); } static max() { return new Brightness(100); } static dim() { return new Brightness(25); } static medium() { return new Brightness(50); } static bright() { return new Brightness(75); } isDim() { return this._level <= 25; } isBright() { return this._level >= 75; } isMedium() { return this._level > 25 && this._level < 75; } isOff() { return this._level === 0; } isMax() { return this._level === 100; } asPercent() { return this._level / 100; } static fromPercent(percent) { if (!Number.isFinite(percent) || percent < 0 || percent > 1) { throw new Error(`Percent must be between 0 and 1, got ${percent}`); } return new Brightness(percent * 100); } } //# sourceMappingURL=Brightness.js.map