homebridge-izone-airconditioner
Version:
Homebridge plugin for the iZone airconditioner controller.
40 lines (38 loc) • 1.42 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.writeHandler = exports.readHandler = void 0;
// callback usage
// callback() - successful write action
// callback(null, newValue) - successful read action
// callback(error) - error
var writeHandler = exports.writeHandler = function writeHandler(name, target, log) {
var valueTransformer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
return function (rawValue, callback) {
var value = valueTransformer ? valueTransformer(rawValue) : rawValue;
log(name, 'BEGIN WRITE', rawValue, value);
return target(value).then(function () {
log(name, 'WRITE OK', rawValue, value);
callback();
})["catch"](function (e) {
log(name, 'WRITE ERROR', rawValue, value, e);
callback(e);
});
};
};
var readHandler = exports.readHandler = function readHandler(name, target, log) {
var valueTransformer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
return function (callback) {
log(name, 'BEGIN READ');
return target().then(function (rawValue) {
var value = valueTransformer ? valueTransformer(rawValue) : rawValue;
log(name, 'READ OK', rawValue, value);
callback(null, value);
})["catch"](function (e) {
log(name, 'READ ERROR', e);
callback(e);
});
};
};
//# sourceMappingURL=index.js.map
;