UNPKG

dt-common-device

Version:

A secure and robust device management library for IoT applications

73 lines (72 loc) 2.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseEventTransformer = void 0; const config_1 = require("../config/config"); class BaseEventTransformer { constructor(deviceType, rawData) { this.deviceType = deviceType; this.rawData = rawData; this.logger = (0, config_1.getConfig)().LOGGER; } // Parse raw event data - to be implemented by device-specific transformers parseData(rawData) { try { this.logger.info(`${this.deviceType}EventTransformer: Parsed event data`); return rawData; } catch (error) { this.logger.error(`${this.deviceType}EventTransformer: Error parsing data`, error); return null; } } /** * Validate transformed event - default implementation, can be overridden */ validate(transformedEvent) { try { // Basic validation - ensure required fields exist if (!transformedEvent) { this.logger.error("Transformed event is null or undefined"); return false; } // Add more validation logic as needed return true; } catch (error) { this.logger.error("BaseEventTransformer: validate Error", error); return false; } } /** * Get the device type this transformer handles */ getDeviceType() { return this.deviceType; } /** * Execute the full transformation pipeline */ async executeTransformation() { try { this.logger.info(`Starting transformation for device type: ${this.deviceType}`); // Step 1: Parse the raw data const parsedData = this.parseData(this.rawData); // Step 2: Transform to DeviceEvent format const transformedResult = await this.transform(parsedData); // Step 3: Convert to array format // TODO: Check if any service sends multiple events const events = Array.isArray(transformedResult) ? transformedResult : [transformedResult]; // Step 4: Validate each event const validEvents = events.filter((event) => this.validate(event)); this.logger.info(`Transformation completed. ${validEvents.length} valid events created.`); return validEvents; } catch (error) { this.logger.error("BaseEventTransformer: executeTransformation Error", error); return []; } } } exports.BaseEventTransformer = BaseEventTransformer;