@iotize/tap
Version:
IoTize Device client for Javascript
48 lines • 2.62 kB
JavaScript
import { IotizeConfigModel } from './model/iotize-config-model';
/**
* Utility class to create iotize config model from XML or JSON file
*/
export class IotizeConfigFactory {
/**
* Create IotizeConfigModel from a XML string
* @param xml
*/
static fromXML(xml) {
throw new Error(`Add import to @iotize/tap/config/iotize-studio/parser/xml to create configuration model from XML file`);
}
/**
* Create IotizeConfigModel from a JSON string
* @param json
*/
static fromJson(json) {
return new IotizeConfigModel(JSON.parse(json));
}
/**
* Build and IotizeConfigModel
* Input can either be
* - A json string
* - A XML string
* - A JSON Object
*
* TODO create test
* @param data
*/
static create(data) {
if (typeof data === 'string') {
data.trim();
if (data.length === 0) {
throw new Error('Cannot create configuration from empty data');
}
if (data[0] === '{') {
return IotizeConfigFactory.fromJson(data);
}
else {
return IotizeConfigFactory.fromXML(data);
}
}
else {
return new IotizeConfigModel(data);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90aXplLWNvbmZpZy1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlnL2lvdGl6ZS1zdHVkaW8vc3JjL2xpYi9pb3RpemUtY29uZmlnLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVztRQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLHVHQUF1RyxDQUN4RyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUMxQixPQUFPLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQXFCO1FBQ2pDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQzthQUNoRTtZQUNELElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtnQkFDbkIsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0wsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7U0FDRjthQUFNO1lBQ0wsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztDQUNGIn0=