eightsleep
Version:
eightsleep api client
37 lines • 1.64 kB
JavaScript
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