homebridge-eq3ble
Version:
Homebridge plugin to control EQ3 bluetooth thermostats
38 lines (32 loc) • 984 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = callbackify;
// copied from https://github.com/nfarina/homebridge-tesla/blob/247b5584cc77b79e2aea6b48e265a60e27ad9a80/src/util/callbackify.ts
function callbackify(func) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var onlyArgs = [];
var maybeCallback = null;
args.forEach(function (arg) {
if (typeof maybeCallback === 'function') return;
if (typeof arg === 'function') {
maybeCallback = arg;
return;
}
onlyArgs.push(arg);
});
if (!maybeCallback) {
throw new Error('Missing callback parameter!');
}
var callback = maybeCallback;
func.apply(undefined, onlyArgs).then(function (data) {
return callback(null, data);
}).catch(function (err) {
return callback(err);
});
};
}