UNPKG

eightsleep

Version:
37 lines 1.64 kB
import BaseError from 'baseerr'; class InvalidDeviceError extends BaseError { } export var Features; (function (Features) { Features["WARMING"] = "warming"; Features["COOLING"] = "cooling"; })(Features || (Features = {})); export default function validateDevice(device) { if (typeof device != 'object') { throw new InvalidDeviceError('invalid device', { device }); } let { lastHeard, lastLowWater, lastPrime, sensorInfo } = device; lastHeard = new Date(lastHeard); if (lastHeard != null && isNaN(lastHeard.valueOf())) { throw new InvalidDeviceError('invalid lastHeard', { device }); } lastLowWater = new Date(lastLowWater); if (lastLowWater != null && isNaN(lastLowWater.valueOf())) { throw new InvalidDeviceError('invalid lastLowWater', { device }); } lastPrime = new Date(lastPrime); if (lastPrime != null && isNaN(lastPrime.valueOf())) { throw new InvalidDeviceError('invalid lastPrime', { device }); } sensorInfo = Object.assign(Object.assign({}, sensorInfo), { lastConnected: (sensorInfo === null || sensorInfo === void 0 ? void 0 : sensorInfo.lastConnected) ? new Date(sensorInfo.lastConnected) : null }); if ((sensorInfo === null || sensorInfo === void 0 ? void 0 : sensorInfo.lastConnected) != null && isNaN(sensorInfo.lastConnected.valueOf())) { throw new InvalidDeviceError('invalid sensorInfo.lastConnected', { device }); } return Object.assign(Object.assign({}, device), { lastHeard, lastLowWater, lastPrime, sensorInfo }); } //# sourceMappingURL=validateDevice.js.map