UNPKG

@sailboat-computer/validation

Version:

Validation framework for sailboat computer v3

100 lines 3.7 kB
"use strict"; /** * Interface-specific validation contexts * * This file defines validation contexts specialized for different hardware interfaces. * These contexts extend the base ValidationContext with interface-specific properties. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createGPIOContext = exports.createMQTTContext = exports.createI2CContext = exports.createSignalKContext = void 0; /** * Create a Signal K validation context * * @param baseContext Base validation context * @param signalKData Signal K specific data * @returns Signal K validation context */ function createSignalKContext(baseContext, signalKData) { // Create a properly typed context with all optional properties explicitly defined const context = { ...baseContext, signalKPath: signalKData.path || undefined, signalKSource: signalKData.source || undefined, signalKDelta: signalKData.delta || undefined, signalKSelf: signalKData.self || undefined, signalKUpdate: signalKData.update || undefined, signalKSourceMetadata: signalKData.sourceMetadata || undefined, signalKTimestamp: signalKData.timestamp || undefined }; return context; } exports.createSignalKContext = createSignalKContext; /** * Create an I2C validation context * * @param baseContext Base validation context * @param i2cData I2C specific data * @returns I2C validation context */ function createI2CContext(baseContext, i2cData) { // Create a properly typed context with all optional properties explicitly defined const context = { ...baseContext, deviceAddress: i2cData.deviceAddress, deviceType: i2cData.deviceType, busNumber: i2cData.busNumber, registerMap: i2cData.registerMap || undefined, calibrationData: i2cData.calibrationData || undefined, deviceConfig: i2cData.deviceConfig || undefined, rawRegisters: i2cData.rawRegisters || undefined }; return context; } exports.createI2CContext = createI2CContext; /** * Create an MQTT validation context * * @param baseContext Base validation context * @param mqttData MQTT specific data * @returns MQTT validation context */ function createMQTTContext(baseContext, mqttData) { // Create a properly typed context with all optional properties explicitly defined const context = { ...baseContext, topic: mqttData.topic, topicParts: mqttData.topic.split('/'), deviceId: mqttData.deviceId, deviceType: mqttData.deviceType, messageType: mqttData.messageType, qos: mqttData.qos, retained: mqttData.retained || undefined, brokerId: mqttData.brokerId || undefined }; return context; } exports.createMQTTContext = createMQTTContext; /** * Create a GPIO validation context * * @param baseContext Base validation context * @param gpioData GPIO specific data * @returns GPIO validation context */ function createGPIOContext(baseContext, gpioData) { // Create a properly typed context with all optional properties explicitly defined const context = { ...baseContext, pinNumber: gpioData.pinNumber, pinDirection: gpioData.pinDirection, pinMode: gpioData.pinMode, previousState: gpioData.previousState || undefined, stateChangeTime: gpioData.stateChangeTime || undefined, debounceConfig: gpioData.debounceConfig || undefined, pullConfig: gpioData.pullConfig || undefined, edgeConfig: gpioData.edgeConfig || undefined }; return context; } exports.createGPIOContext = createGPIOContext; //# sourceMappingURL=interface-contexts.js.map