eightsleep
Version:
eightsleep api client
44 lines • 1.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Features = void 0;
const baseerr_1 = __importDefault(require("baseerr"));
class InvalidDeviceError extends baseerr_1.default {
}
var Features;
(function (Features) {
Features["WARMING"] = "warming";
Features["COOLING"] = "cooling";
})(Features = exports.Features || (exports.Features = {}));
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 });
}
exports.default = validateDevice;
//# sourceMappingURL=validateDevice.js.map