import { deepFreeze, isFiniteNumber } from "../../utils/index.js"; import { validateCadenceQuality } from "../cadence.js"; export class Sensors { constructor({ supportsHeartRate = false, supportsCadence = false, supportsPower = false, hrSamplingHz, cadenceSamplingHz, powerSamplingHz, cadenceSourceQuality, } = {}) { this.supportsHeartRate = Boolean(supportsHeartRate); this.supportsCadence = Boolean(supportsCadence); this.supportsPower = Boolean(supportsPower); this.hrSamplingHz = isFiniteNumber(hrSamplingHz) ? Number(hrSamplingHz) : undefined; this.cadenceSamplingHz = isFiniteNumber(cadenceSamplingHz) ? Number(cadenceSamplingHz) : undefined; this.powerSamplingHz = isFiniteNumber(powerSamplingHz) ? Number(powerSamplingHz) : undefined; this.cadenceSourceQuality = validateCadenceQuality(cadenceSourceQuality); deepFreeze(this); } merge = (partial) => new Sensors(Object.assign({}, this, partial)); }