UNPKG

@dotwee/homebridge-z2m

Version:

Expose your Zigbee devices to HomeKit with ease, by integrating Zigbee2MQTT with Homebridge.

70 lines 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BasicServiceCreatorManager = void 0; const basic_sensors_1 = require("./basic_sensors"); const battery_1 = require("./battery"); const cover_1 = require("./cover"); const light_1 = require("./light"); const lock_1 = require("./lock"); const switch_1 = require("./switch"); const action_1 = require("./action"); const climate_1 = require("./climate"); const air_quality_1 = require("./air_quality"); class BasicServiceCreatorManager { constructor() { this.converterConfigs = new Map(); this.creators = BasicServiceCreatorManager.constructors.map((c) => new c(this)); } allConverterConfigurationsAreValid(configurations, logger) { for (const key of Object.keys(configurations)) { const validator = this.converterConfigs.get(key); if (validator !== undefined) { if (!validator(configurations[key], key, logger)) { logger === null || logger === void 0 ? void 0 : logger.error(`Converter configuration "${key}" is not valid. Contents: ${JSON.stringify(configurations[key])}`); return false; } } else { logger === null || logger === void 0 ? void 0 : logger.error(`Unknown converter configuration tag detected: ${key} Contents: ${JSON.stringify(configurations[key])}`); return false; } } return true; } registerConverterConfiguration(tag, validator) { tag = tag.trim().toLocaleLowerCase(); if (this.converterConfigs.has(tag)) { throw new Error(`Duplicate converter configuration tag detected: ${tag}`); } this.converterConfigs.set(tag, validator); } static getInstance() { if (BasicServiceCreatorManager.instance === undefined) { BasicServiceCreatorManager.instance = new BasicServiceCreatorManager(); } return BasicServiceCreatorManager.instance; } createHomeKitEntitiesFromExposes(accessory, exposes) { for (const c of this.creators) { try { c.createServicesFromExposes(accessory, exposes); } catch (e) { accessory.log.error(`Exception occurred when creating services for ${accessory.displayName}: ${e}`); } } } } exports.BasicServiceCreatorManager = BasicServiceCreatorManager; BasicServiceCreatorManager.constructors = [ light_1.LightCreator, switch_1.SwitchCreator, cover_1.CoverCreator, lock_1.LockCreator, basic_sensors_1.BasicSensorCreator, air_quality_1.AirQualitySensorCreator, action_1.StatelessProgrammableSwitchCreator, climate_1.ThermostatCreator, battery_1.BatteryCreator, ]; //# sourceMappingURL=creators.js.map