UNPKG

@constructorfleet/ultimate-govee

Version:

Library for interacting with Govee devices written in Typescript.

101 lines 4.25 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MqttMessageHandler = exports.OpenAPIMqttPacket = exports.OpenAPIMqttCapability = exports.OpenAPIMqttCapabilityState = exports.OpenAPIResponse = void 0; const class_transformer_1 = require("class-transformer"); const request_util_1 = require("../utils/request.util"); class OpenAPIResponse extends request_util_1.BaseResponse { } exports.OpenAPIResponse = OpenAPIResponse; __decorate([ (0, class_transformer_1.Expose)({ name: 'code' }), __metadata("design:type", Number) ], OpenAPIResponse.prototype, "code", void 0); class OpenAPIMqttCapabilityState { } exports.OpenAPIMqttCapabilityState = OpenAPIMqttCapabilityState; __decorate([ (0, class_transformer_1.Expose)({ name: 'name' }), __metadata("design:type", String) ], OpenAPIMqttCapabilityState.prototype, "name", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'value' }), __metadata("design:type", Number) ], OpenAPIMqttCapabilityState.prototype, "value", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'message' }), __metadata("design:type", String) ], OpenAPIMqttCapabilityState.prototype, "message", void 0); class OpenAPIMqttCapability { } exports.OpenAPIMqttCapability = OpenAPIMqttCapability; __decorate([ (0, class_transformer_1.Expose)({ name: 'type' }), __metadata("design:type", String) ], OpenAPIMqttCapability.prototype, "type", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'instance' }), __metadata("design:type", String) ], OpenAPIMqttCapability.prototype, "instance", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'state' }), __metadata("design:type", Array) ], OpenAPIMqttCapability.prototype, "state", void 0); class OpenAPIMqttPacket { } exports.OpenAPIMqttPacket = OpenAPIMqttPacket; __decorate([ (0, class_transformer_1.Expose)({ name: 'sku' }), __metadata("design:type", String) ], OpenAPIMqttPacket.prototype, "model", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'device' }), __metadata("design:type", String) ], OpenAPIMqttPacket.prototype, "deviceId", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'deviceName' }), __metadata("design:type", String) ], OpenAPIMqttPacket.prototype, "deviceName", void 0); __decorate([ (0, class_transformer_1.Expose)({ name: 'capabilities' }), __metadata("design:type", Array) ], OpenAPIMqttPacket.prototype, "capabilities", void 0); class MqttMessageHandler { static deserializeMessage(message) { const json = JSON.parse(typeof message === 'string' ? message : message.toString()); return (0, class_transformer_1.plainToInstance)(OpenAPIMqttPacket, json); } static parseMessage(message) { const state = {}; switch (message.capabilities.at(0)?.instance) { case 'bodyAppearedEvent': state.presence = true; break; case 'lackWaterEvent': state.waterShortage = true; break; case 'bodyLeftEvent': state.presence = false; break; default: break; } return { id: message.deviceId, model: message.model, pactCode: 0, pactType: 0, state, }; } } exports.MqttMessageHandler = MqttMessageHandler; //# sourceMappingURL=openapi.models.js.map