UNPKG

node-red-contrib-home-assistant-websocket

Version:
56 lines (55 loc) 2.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createControllerDependencies = createControllerDependencies; exports.createExposeAsControllerDependences = createExposeAsControllerDependences; const ClientEvents_1 = __importDefault(require("../events/ClientEvents")); const JSONataService_1 = __importDefault(require("../services/JSONataService")); const NodeRedContextService_1 = __importDefault(require("../services/NodeRedContextService")); const TypedInputService_1 = __importDefault(require("../services/TypedInputService")); const EventStatus_1 = __importDefault(require("../status/EventStatus")); /** * Create some of the dependencies needed for a BaseNode controller. * @param node The node to create the controller for. * @param homeAssistant The home assistant instance to use. * @returns The dependencies needed for a BaseNode controller. */ function createControllerDependencies(node, homeAssistant) { const jsonataService = new JSONataService_1.default({ homeAssistant, node, }); const nodeRedContextService = new NodeRedContextService_1.default(node); const typedInputService = new TypedInputService_1.default({ nodeConfig: node.config, context: nodeRedContextService, jsonata: jsonataService, }); return { homeAssistant, jsonataService, nodeRedContextService, typedInputService, }; } function createExposeAsControllerDependences({ exposeAsConfigNode, homeAssistant, node, serverConfigNode, }) { const controllerDeps = createControllerDependencies(node, homeAssistant); const clientEvents = new ClientEvents_1.default({ node, emitter: homeAssistant.eventBus, }); const status = new EventStatus_1.default({ clientEvents, config: serverConfigNode.config, exposeAsEntityConfigNode: exposeAsConfigNode, node, }); return { ...controllerDeps, clientEvents, exposeAsConfigNode, status, }; }