bowling-analysis-system
Version:
A comprehensive system for analyzing bowling techniques using video processing and metrics calculation
58 lines (49 loc) • 1.35 kB
JavaScript
/**
* @module MetricsJsonUpdater
* @description Updates metrics JSON data with additional information
*/
/**
* @class MetricsJsonUpdater
* @description Updates metrics JSON data with additional information
*/
class MetricsJsonUpdater {
/**
* Create a new metrics JSON updater
* @param {Object} options - Updater options
*/
constructor(options = {}) {
this.options = {
addTimestamp: true,
addVersion: true,
...options
};
}
/**
* Process the input data
* @param {Object} metrics - Metrics data
* @returns {Promise<Object>} Updated metrics data
*/
async process(metrics) {
if (!metrics) {
return metrics;
}
// Create a copy of the metrics
const updatedMetrics = { ...metrics };
// Ensure metadata exists
updatedMetrics.metadata = updatedMetrics.metadata || {};
// Add timestamp
if (this.options.addTimestamp) {
updatedMetrics.metadata.updatedAt = new Date().toISOString();
}
// Add version
if (this.options.addVersion) {
updatedMetrics.metadata.version = this.options.version || '1.0.0';
}
// Add source information
if (this.options.source) {
updatedMetrics.metadata.source = this.options.source;
}
return updatedMetrics;
}
}
module.exports = MetricsJsonUpdater;