@sailboat-computer/validation
Version:
Validation framework for sailboat computer v3
41 lines • 1.41 kB
JavaScript
;
/**
* Extended base validation rule implementation
*
* This file extends the base validation rule to work with extended sensor data types.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExtendedBaseValidationRule = void 0;
const base_rule_1 = require("./base-rule");
/**
* Abstract base class for extended validation rules
*/
class ExtendedBaseValidationRule extends base_rule_1.BaseValidationRule {
/**
* Helper method to get previous sensor data from context
*/
getPreviousData(data, context, maxAgeSeconds = 60) {
if (!data.timestamp || !data.sensorId) {
return undefined;
}
const cutoffTime = data.timestamp.getTime() - (maxAgeSeconds * 1000);
return context.recentData
.filter(d => d.sensorId === data.sensorId &&
d.timestamp &&
d.timestamp.getTime() >= cutoffTime &&
d.timestamp.getTime() < data.timestamp.getTime())
.sort((a, b) => {
if (!a.timestamp || !b.timestamp)
return 0;
return b.timestamp.getTime() - a.timestamp.getTime();
})[0];
}
/**
* Helper method to get source details
*/
getSourceDetails(data) {
return data.sourceDetails;
}
}
exports.ExtendedBaseValidationRule = ExtendedBaseValidationRule;
//# sourceMappingURL=extended-base-rule.js.map