Source: common/MonitorDataProcessor.js

import { Utils } from "./Utils";

/**
 * @class MonitorDataProcessor
 * Responsible for converting each piece of data into distributable data: id key value.
 * @memberof THING
 * @public
 */
class MonitorDataProcessor {

	constructor(processors) {
		if (Utils.isArray(processors)) {
			this.processors = processors;
		}
		else if (processors !== undefined && processors !== null) {
			this.processors = [processors];
		}
		else {
			this.processors = [];
		}
	}

	process(data) {
		if (!Utils.isArray(data)) {
			data = [data];
		}

		let processedDatas = [];
		data.forEach((_data_) => {
			let _processedData_ = Utils.cloneObject(_data_);
			this.processors.forEach(processor => {
				if (Utils.isFunction(processor)) {
					_processedData_ = processor(_processedData_);
				}
			})
			processedDatas.push(_processedData_);
		});
		return processedDatas;
	}

}
export { MonitorDataProcessor }