homebridge-wideq
Version:
WideQ for Homebridge
45 lines (44 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ac_1 = require("../devices/ac");
var default_1 = require("../devices/default");
var refrigerator_1 = require("../devices/refrigerator");
var tv_1 = require("../devices/tv");
var washer_1 = require("./../devices/washer");
var ParseUtil = /** @class */ (function () {
function ParseUtil(platform) {
this.platform = platform;
this.parsers = {};
this.loadParsers();
}
ParseUtil.prototype.loadParsers = function () {
this.parsers = {
'REFRIGERATOR': new refrigerator_1.RefrigeratorParser(this.platform, 'REFRIGERATOR'),
'AC': new ac_1.ACParser(this.platform, 'AC'),
'WASHER': new washer_1.WasherParser(this.platform, 'WASHER'),
'TV': new tv_1.TVParser(this.platform, 'TV'),
'DEFAULT': new default_1.DefaultParser(this.platform, 'UNKNOWN'),
};
};
ParseUtil.prototype.getByModel = function (model) {
return (model in this.parsers) ? this.parsers[model] : this.parsers['DEFAULT'];
};
ParseUtil.prototype.getCreateAccessories = function (device) {
var result = [];
var parser = this.getByModel(device.device.type);
if (parser) {
result = parser.getCreateAccessories(device);
}
return result;
};
ParseUtil.prototype.parserAccessories = function (device, status) {
var result = [];
var parser = this.getByModel(device.device.type);
if (parser) {
result = parser.parserAccessories(device, status);
}
return result;
};
return ParseUtil;
}());
exports.default = ParseUtil;