@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
39 lines • 4.92 kB
JavaScript
import { DotAccessor } from '@iotize/common/data-accessor';
import { xmlToJson } from '@iotize/common/xml';
import { IoTizeStudioToTapConfigConverter } from '@iotize/tap/config/iotize-studio';
export function parseTapConfiguratorConfig(fileContent) {
if (isJsonString(fileContent)) {
const config = JSON.parse(fileContent);
// this.tapConfigPickerservice.onConfigSelected(config);
return config;
}
else {
// if (IotizeConfigFactory.fromXML(fileContent)) {
return fromXml(fileContent);
}
}
export function isJsonString(str) {
try {
const json = JSON.parse(str);
return typeof json === 'object';
}
catch (e) {
return false;
}
}
export function fromXml(fileContent) {
// console.log('File content', fileContent);
// const parser = new DOMParser();
// const xmlConfig = parser.parseFromString(fileContent, 'application/xml');
// let xmlConfig = parse(fileContent);
const xmlConfig = iotizeStudioConfigToJson(fileContent);
const config = new IoTizeStudioToTapConfigConverter().convert(new DotAccessor(xmlConfig));
return { config };
}
function iotizeStudioConfigToJson(fileContent) {
return xmlToJson(fileContent, {
attributeNamePrefix: '',
ignoreAttributes: false,
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWNvbmZpZy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvY29uZmlnL3NyYy9saWIvdGFwLWNvbmZpZy1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdwRixNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFdBQW1CO0lBRW5CLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQTBCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUQsd0RBQXdEO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7U0FBTSxDQUFDO1FBQ04sa0RBQWtEO1FBQ2xELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxXQUFtQjtJQUN6Qyw0Q0FBNEM7SUFDNUMsa0NBQWtDO0lBQ2xDLDRFQUE0RTtJQUM1RSxzQ0FBc0M7SUFDdEMsTUFBTSxTQUFTLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQ0FBZ0MsRUFBRSxDQUFDLE9BQU8sQ0FDM0QsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQzNCLENBQUM7SUFDRixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsV0FBbUI7SUFDbkQsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFO1FBQzVCLG1CQUFtQixFQUFFLEVBQUU7UUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztLQUN4QixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG90QWNjZXNzb3IgfSBmcm9tICdAaW90aXplL2NvbW1vbi9kYXRhLWFjY2Vzc29yJztcbmltcG9ydCB7IHhtbFRvSnNvbiB9IGZyb20gJ0Bpb3RpemUvY29tbW9uL3htbCc7XG5pbXBvcnQgeyBJb1RpemVTdHVkaW9Ub1RhcENvbmZpZ0NvbnZlcnRlciB9IGZyb20gJ0Bpb3RpemUvdGFwL2NvbmZpZy9pb3RpemUtc3R1ZGlvJztcbmltcG9ydCB7IFRhcENvbmZpZ3VyYXRvckNvbmZpZyB9IGZyb20gJ0Bpb3RpemUvdGFwL2NvbmZpZy9zY2hlbWEvdjEnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYXBDb25maWd1cmF0b3JDb25maWcoXG4gIGZpbGVDb250ZW50OiBzdHJpbmdcbik6IFRhcENvbmZpZ3VyYXRvckNvbmZpZyB7XG4gIGlmIChpc0pzb25TdHJpbmcoZmlsZUNvbnRlbnQpKSB7XG4gICAgY29uc3QgY29uZmlnOiBUYXBDb25maWd1cmF0b3JDb25maWcgPSBKU09OLnBhcnNlKGZpbGVDb250ZW50KTtcbiAgICAvLyB0aGlzLnRhcENvbmZpZ1BpY2tlcnNlcnZpY2Uub25Db25maWdTZWxlY3RlZChjb25maWcpO1xuICAgIHJldHVybiBjb25maWc7XG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgKElvdGl6ZUNvbmZpZ0ZhY3RvcnkuZnJvbVhNTChmaWxlQ29udGVudCkpIHtcbiAgICByZXR1cm4gZnJvbVhtbChmaWxlQ29udGVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSnNvblN0cmluZyhzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHN0cik7XG4gICAgcmV0dXJuIHR5cGVvZiBqc29uID09PSAnb2JqZWN0JztcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbVhtbChmaWxlQ29udGVudDogc3RyaW5nKTogVGFwQ29uZmlndXJhdG9yQ29uZmlnIHtcbiAgLy8gY29uc29sZS5sb2coJ0ZpbGUgY29udGVudCcsIGZpbGVDb250ZW50KTtcbiAgLy8gY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAvLyBjb25zdCB4bWxDb25maWcgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGZpbGVDb250ZW50LCAnYXBwbGljYXRpb24veG1sJyk7XG4gIC8vIGxldCB4bWxDb25maWcgPSBwYXJzZShmaWxlQ29udGVudCk7XG4gIGNvbnN0IHhtbENvbmZpZyA9IGlvdGl6ZVN0dWRpb0NvbmZpZ1RvSnNvbihmaWxlQ29udGVudCk7XG4gIGNvbnN0IGNvbmZpZyA9IG5ldyBJb1RpemVTdHVkaW9Ub1RhcENvbmZpZ0NvbnZlcnRlcigpLmNvbnZlcnQoXG4gICAgbmV3IERvdEFjY2Vzc29yKHhtbENvbmZpZylcbiAgKTtcbiAgcmV0dXJuIHsgY29uZmlnIH07XG59XG5cbmZ1bmN0aW9uIGlvdGl6ZVN0dWRpb0NvbmZpZ1RvSnNvbihmaWxlQ29udGVudDogc3RyaW5nKSB7XG4gIHJldHVybiB4bWxUb0pzb24oZmlsZUNvbnRlbnQsIHtcbiAgICBhdHRyaWJ1dGVOYW1lUHJlZml4OiAnJyxcbiAgICBpZ25vcmVBdHRyaWJ1dGVzOiBmYWxzZSxcbiAgfSk7XG59XG4iXX0=